首页 > 系统相关 >RockyLinux9 源码安装LNMP

RockyLinux9 源码安装LNMP

时间:2022-11-03 14:25:48浏览次数:45  
标签:RockyLinux9 -- LNMP nginx 源码 usr mysql php local

本文参考来自https://www.ziruchu.com/art/401 在基础上修改了部分路径和版本,感谢原作者的分享。

准备工作
安装软件

dnf install -y wget vim lrzsz

关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 禁止开机自启
systemctl disable firewalld.service
# 查看状态
systemctl status firewalld.service

安装依赖

dnf -y install apr* autoconf automake bison bzip2* cpp curl-devel fontconfig fontconfig-devel kernel keyutils keyutils-libs-devel krb5-devel patch ncurses-devel libtirpc-devel gtk* ntpstat na* bison*

dnf - install gd gd-devel gettext-devel libjpeg* libtool* libxml2-devel libxml* libXaw-devel pcre-devel perl php-common php-gd sqlite-devel unzip libzip-devel oniguruma

dnf -y install gcc gcc-c++ cmake make openssl-devel

源码安装Nginx

创建用户与组

useradd -g nginx nginx -M -s /sbin/nologin
安装Nginx
cd /usr/local/src
tar -zxvf nginx-1.20.2.tar.gz
cd nginx-1.20.2``

编译

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-pcre \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-stream_ssl_module

安装

make && make install

启动Nginx

方式一:设置开机自启
配置自启服务

cd /usr/lib/systemd/system
vim nginx.service
保存配置并退出

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit

[Install]
WantedBy=multi-user.target

设置开机自启

# 设置开机自启
systemctl enable  nginx.service
# 留意留意如下命令
# 启动nginx
systemctl start nginx.service
# 禁止开机自启
systemctl disable  nginx.service
# 查看nginx状态
systemctl status nginx.service

方式二

# 启动
/usr/local/nginx/sbin/nginx
# 停止
/usr/local/nginx/sbin/nginx -s stop
# 重启
/usr/local/nginx/sbin/nginx -s reload 

备份配置文件
备份nginx.conf文件

cd /usr/local/nginx/conf
cp ./nginx.conf ./nginx.conf.bak

源码安装MySQL8.0.20

卸载自带的mariadb数据库

查看是否自带数据

rpm -qa|grep mariadb

卸载自带数据库

dnf -y remove mariadb* boost-*
检查是否存在mysql用户与组

检查mysql用户与组是否存在

cat /etc/group  | grep mysql
cat /etc/passwd | grep mysql

创建mysql用户组

groupadd mysql

创建mysql用户并禁止登陆

useradd -g mysql mysql -M -s /sbin/nologin/

检查my.cnf配置文件是否存在

rm -rf /etc/my.cnf
rpm -qa | grep mysql

安装MySQL依赖

cd /usr/local/src

wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
tar -zxvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make && make install

安装MySQL8.0.20

cd /usr/local/src

解压

tar -zxvf mysql-boost-8.0.20.tar.gz
cd mysql-boost-8.0.20
mkdir build
cd build

编译与安装

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/src/mysql-8.0.20/boost \
-DDOWNLOAD_BOOST=1

make && make install

修改目录权限

# 修改所属组与用户
chown -R mysql:mysql /usr/local/mysql/
# 修改权限
chmod -R 755 /usr/local/mysql/
初始化mysql
cd /usr/local/mysql/bin/

# 初始化
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf8

# 安装ssl
/usr/local/mysql/bin/mysql_ssl_rsa_setup

# 启动mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &

登录mysql
使用新的窗口进行登录

一:连接mysql

cd /usr/local/mysql/bin/

./mysql -uroot -p
输入 初始化mysql生成的密码

二:修改密码

alter user 'root'@'localhost' identified by "123456";

三:创建远程登录用户

# 创建远程登录用户
create user root@'%' identified by '123456'
# 修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 分配权限
grant all privileges on *.* to root@'%';
flush privileges;
select user,host from mysql.user;

四:防火墙中开放3306端口

退出myslq

# 查看是否开放3306端口
firewall-cmd --list-ports

# 开启防火墙
systemctl start firewalld.service

# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 刷新
firewall-cmd --reload

# 关闭防火墙
systemctl stop firewalld.service

# 禁止防火墙开机自启
systemctl disable firewalld.service

配置环境变量

vim /etc/profile

# 添加内容
   export PATH=$PATH:/usr/local/mysql/bin

# 刷新
source /etc/profile

配置自启服务

vim /usr/lib/systemd/system/mysql.service

# 添加如下内容,保存并退出
[Unit]
Description=MySQL Server(8.0)
Documentation=main:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld8
LimitNOFILE=5000

加入开机自启

systemctl enable mysql.service

了解相关命令

# 禁止开机自启
systemctl disable mysql.service
# 启动mysql
systemctl start mysql.service
# 关闭mysql
systemctl stop mysql.service
# 查看状态
systemctl status mysql.service

安装PHP8.1.0

卸载自带的PHP

# 检查是否有自带的PHP
rpm -qa|grep php

卸载PHP

rpm -e php-gd-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64
rpm -e php-common-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64

再次查看
rpm -qa|grep php

创建PHP用户
groupadd www
useradd -g www www -M -s /sbin/nologin

安装oniguruma依赖

# 下载并解压
cd /usr/local/src
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
tar -zxf oniguruma-6.9.4.tar.gz
cd oniguruma-6.9.4

# 安装
./autogen.sh && ./configure --prefix=/usr
make && make install
源码安装PHP8.1.0
# 下载并解压
cd /usr/local/src
https://www.php.net/distributions/php-8.1.0.tar.gz
tar -zxvf php-8.1.0.tar.gz
cd  php-8.1.0/

# 编译与安装
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-fpm-user=www  \
--with-fpm-group=www \
--enable-mbstring  \
--enable-ftp  \
--enable-gd   \
--enable-gd-jis-conv \
--enable-mysqlnd \
--enable-pdo   \
--enable-sockets   \
--enable-fpm   \
--enable-xml  \
--enable-soap  \
--enable-pcntl   \
--enable-cli   \
--with-openssl  \
--with-mysqli=mysqlnd   \
--with-pdo-mysql=mysqlnd   \
--with-pear   \
--with-zlib  \
--with-iconv  \
--with-curl  \
--enable-sockets

make && make install

拷贝配置文件
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
修改配置文件

编辑php-fpm.conf配置文件
vim /usr/local/php/etc/php-fpm.conf
去掉如下配置前的#号并保存退出
pid = /run/php-fpm.pid

设置开机自启

# 新增配置文件
vim /usr/lib/systemd/system/php-fpm.service

添加如下内容保存并退出

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

设置开启自启及相关命令

# 加入开机自启动
systemctl enable php-fpm.service

# 相关命令
# 启动
systemctl start php-fpm.service
# 重启
systemctl restart php-fpm.service
# 停止
systemctl stop php-fpm.service
# 查看状态
systemctl status php-fpm.service
手动关闭

# 关闭php-fpm服务
sudo kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

#启动
/usr/local/php/sbin/php-fpm

设置环境变量
vim /etc/profile

export PATH=$PATH:/usr/local/php/bin

source /etc/profile

配置Nginx解析PHP

第一步:编辑nginx.conf配置文件

cd /usr/local/nginx/conf

vim nginx.conf

第二步:打开PHP注册

location ~ \.php$ {
   root           html;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   include        fastcgi_params;
}

第三步:修改路径

location ~ \.php$ {
   root           /www;
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
}

第四步:修改nginx web目录

location / {
   root   /www;
   index  index.php index.html index.htm;
}

第五步:重启nginx并测试php

mkdir /www
vim /www/index.php

<?php
phpinfo();
?>

浏览器访问就可以看到了

配置虚拟主机

该步骤我就不再操作了,把以前的笔记粘贴过来的

第一步:创建vhosts目录

cd /usr/local/nginx/conf/
mkdir vhosts
第二步:nginx.conf引入

include vhosts/*.conf;
第三步:配置基于端口的主机

cd /www

创建demo01 demo02目录
mkdir demo01 demo02

在demo01、demo02目录下分别创建index.php,内容如下:
demo01/index.php
echo 'demo01,基于端口的虚拟主机';

demo02/index.php
echo 'demo02 基于域名的虚拟主机';
第四步:配置

cd /usr/local/nginx/conf/vhosts
vim 8866.conf

添加如下内容

    server {
       listen        8866;
       root   "/www/demo01";
       location / {
           index index.php index.html;
           autoindex  off;
       }
       location ~ \.php(.*)$ {
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           fastcgi_param  PATH_INFO  $fastcgi_path_info;
           fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
           include        fastcgi_params;
       }
    }

另外一个也是一样的,就不配置了,自己去配置

第五步:配置win10下hosts文件

windows中的hosts文件
192.168.157.129 aabb.com

安装Composer

第一步:安装

cd /usr/local/src

php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer

第二步:添加用于composer的用户

useradd ziruchu
设置密码
passwd ziruchu 12345

第三步:设置composer用户权限

将sudoers文件的权限修改成可编辑

chmod -v u+w /etc/sudoers

使用vim编辑sudoers文件

vim /etc/sudoers

内容如下
在sudoes文件中添加如下的内容
找到

root ALL=(ALL) ALL
然后添加
ziruchu ALL=(ALL) ALL
如需新用户使用sudo时不用输密码,把最后一个ALL改为NOPASSWD:ALL即可。

chmod -v u-w /etc/sudoers

第四步:修改目录权限

修改www目录所属组与所属用户为www

chown -R www:www /www

修改www目录权限

chmod -R 775 /www

把新增的用户加入www组

usermod -G www ziruchu

第五步:配置国内镜像

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

源码安装Swoole

安装


https://github.com/swoole/swoole-src/archive/refs/tags/v4.8.2.tar.gz
tar -zxvf swoole-src-4.8.2.tar.gz
cd swoole-src-4.8.2/
/usr/local/php/bin/phpize

./configure \
--with-php-config=/usr/local/php/bin/php-config \
--enable-openssl \
--enable-http2 \
--enable-sockets

make && make install

添加扩展

vim /usr/local/php//etc/php.ini

php.ini文件中添加如下扩展并保存退出

extension=swoole.so

重启php

systemctl restart php-fpm.service

检查扩展

php -m | grep swoole

源码安装Redis

安装

cd /usr/local/src

下载与解压

wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxvf redis-6.2.6.tar.gz
cd redis-6.2.6/

安装

make
make install PREFIX=/usr/local/redis

创建配置目录

mkdir -p /usr/local/redis/etc
cp ./redis.conf /usr/local/redis/etc/

PHP安装redis扩展

pecl install redis

修改配置文件并保存退出
vim /usr/local/php/etc/php.ini
extension=redis.so

检查

php -m | grep redis

重启php

systemctl restart php-fpm.service

完整的LNMP搭建完毕,开始PHP之旅吧。

标签:RockyLinux9,--,LNMP,nginx,源码,usr,mysql,php,local
From: https://www.cnblogs.com/nevell/p/16854316.html

相关文章