超详细的RockyLinux8.5源码安装LNMP,值得收藏!
作者:温新
时间:2021-11-27
我喜欢源码搭建环境,虽然源码安装很花费时间,但是那种感觉很好。
RockyLinux8.5可用于生产环境了,尽情享受吧。这应该是最详细的了。
准备工作
安装软件
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
创建用户与组
groupadd 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
配置虚拟主机
创建服务目录
mkdir /www
备份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/mysql8020 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/usr/local/mysql8020/data \
-DWITH_BOOST=/usr/local/src/mysql-8.0.20/boost \
-DDOWNLOAD_BOOST=1
修改目录权限
# 修改所属组与用户
chown -R mysql:mysql /usr/local/mysql8020/
# 修改权限
chmod -R 755 /usr/local/mysql8020/
初始化mysql
cd /usr/local/mysql8020/bin/
# 初始化
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql8020/data --character-set-server=utf8
# 安装ssl
/usr/local/mysql8020/bin/mysql_ssl_rsa_setup
# 启动mysql
/usr/local/mysql8020/bin/mysqld_safe --user=mysql &
登录mysql
使用新的窗口进行登录
一:连接mysql
cd /usr/local/mysql8020/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/mysql8020/bin
# 刷新
source /etc/profile
设置环境变量
配置自启服务
vim /usr/lib/systemd/system/mysql8020.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 mysql8020.service
# 了解相关命令
# 禁止开机自启
systemctl disable mysql8020.service
# 启动mysql
systemctl start mysql8020.service
# 关闭mysql
systemctl stop mysql8020.service
# 查看状态
systemctl status mysql8020.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/php810 \
--with-config-file-path=/usr/local/php810/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/php810/etc/php.ini
cp /usr/local/php810/etc/php-fpm.conf.default /usr/local/php810/etc/php-fpm.conf
cp /usr/local/php810/etc/php-fpm.d/www.conf.default /usr/local/php810/etc/php-fpm.d/www.conf
修改配置文件
# 编辑php-fpm.conf配置文件
vim /usr/local/php810/etc/php-fpm.conf
# 去掉如下配置前的#号并保存退出
pid = /run/php-fpm.pid
设置开机自启
# 新增配置文件
vim /usr/lib/systemd/system/php-fpm810.service
# 添加如下内容保存并退出
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php810/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php810/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
设置开启自启及相关命令
# 加入开机自启动
systemctl enable php-fpm810.service
# 相关命令
# 启动
systemctl start php-fpm810.service
# 重启
systemctl restart php-fpm810.service
# 停止
systemctl stop php-fpm810.service
# 查看状态
systemctl status php-fpm810.service
手动关闭
# 关闭php-fpm服务
sudo kill -INT `cat /usr/local/php810/var/run/php-fpm.pid`
#启动
/usr/local/php810/sbin/php-fpm
设置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/php810/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
安装
cd /usr/local/src
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/php810/bin/phpize
./configure \
--with-php-config=/usr/local/php810/bin/php-config \
--enable-openssl \
--enable-http2 \
--enable-sockets
make && make install
添加扩展
vim /usr/local/php810//etc/php.ini
# php.ini文件中添加如下扩展并保存退出
extension=swoole.so
重启php
systemctl restart php-fpm810.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/redis626
创建配置目录
mkdir -p /usr/local/redis626/etc
cp ./redis.conf /usr/local/redis626/etc/
PHP安装redis扩展
pecl install redis
# 修改配置文件并保存退出
vim /usr/local/php810/etc/php.ini
extension=redis.so
# 检查
php -m | grep redis
# 重启php
systemctl restart php-fpm810.service
完整的LNMP搭建完毕,开始PHP之旅吧。
我是温新
每天进步一点点,就一点点
请登录后再评论