1. 准备工作
1.1 系统:
CentOS7.9
1.2 所需要的安装包:
https://nginx.org/download/nginx-1.19.7.tar.gz
https://dev.mysql.com/get/downloads/mysql-8.0/mysql-boost-8.0.23.tar.gz
https://www.php.net/distributions/php-7.4.15.tar.gz
https://github.com/Kitware/CMake/releases/download/v3.19.5/cmake-3.19.5.tar.gz
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
2 安装Nginx
2.1 安装依赖包:
# yum install pcre-devel zlib-devel gcc gcc-c++ make
2.2 建立Nginx服务的运行用户:
# useradd -M -s /sbin/nologin nginx
2.3 编译安装nginx-1.19.7:
# tar -zxvf nginx-1.19.7.tar.gz -C /usr/local/src/
# cd /usr/local/src/nginx-1.19.7/
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# make
# make install
2.4 路径优化:
# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
2.5 将nginx添加为系统服务:
# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2.6 赋予配置文件权限并启动服务:
# chmod 644 /lib/systemd/system/nginx.service
# systemctl start nginx.service
3 安装mysql
3.1 编译安装cmake-3.19.5:
# yum install openssl openssl-devel gcc gcc-c++
# tar -zxvf cmake-3.19.5.tar.gz -C /usr/local/src/
# cd /usr/local/src/cmake-3.19.5/
# ./configure --prefix=/usr/local/cmake
# gmake
# make install
# vim /etc/profile
export PATH=/usr/local/cmake/bin:$PATH
# source /etc/profile
# cmake --version
3.2 编译安装gcc-10.2.0:
# tar -zxvf gcc-10.2.0.tar.gz -C /usr/local/src/
# cd /usr/local/src/gcc-10.2.0/
# mkdir gcc-build-10.2.0
# cd gcc-build-10.2.0/
# ../configure --prefix=/usr/local/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib
# make
# make install
# vim /etc/profile
export PATH=/usr/local/cmake/bin:/usr/local/gcc/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc/lib64
export CC=/usr/local/gcc/bin/gcc
export CXX=/usr/local/gcc/bin/g++
# source /etc/profile
# gcc --version
# g++ --version
# rm -rf /usr/lib64/libstdc++.so.6
# ln -s /usr/local/gcc/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
3.3 编译安装mysql源码包:
# yum install ncurses ncurses-devel bison
# useradd -M -s /sbin/nologin mysql
# tar -zxvf mysql-boost-8.0.23.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-8.0.23/
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSTEMD_PID_DIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_unicode_ci -DWITH_BOOST=boost -DCMAKE_CXX_COMPILER=/usr/local/gcc/bin/g++ -DFORCE_INSOURCE_BUILD=1
# make -j 2
# make install
3.4 修改和添加配置文件:
# vim /etc/my.cnf
[mysqld]
# 设置用户
user=mysql
# 设置MySQL的安装目录
basedir=/usr/local/mysql
# 设置MySQL数据库数据存放目录
datadir=/usr/local/mysql/data
# 设置服务端的字符集
character-set-server=utf8mb4
bind-address=0.0.0.0
port=3306
socket=/usr/local/mysql/mysql.sock
[client]
# MySQL客户端连接服务端时默认使用的端口
port=3306
socket=/usr/local/mysql/mysql.sock
# 设置客户端连接服务端的默认字符集
default-character-set=utf8mb4
[mysqld_safe]
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
3.5 权限修改:
# chown -R mysql.mysql /usr/local/mysql
# chown mysql.mysql /etc/my.cnf
3.6 设置环境变量
# vim /etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/cmake/bin:/usr/local/gcc/bin:$PATH
# source /etc/profile
3.7 初始化数据库:
# cd /usr/local/mysql/bin/
# ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
3.8 添加MySQL为系统服务并设置root用户密码:
# cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
# chmod a+x /usr/local/mysql/bin/mysqld.sh
# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
Type=forking
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop
[Install]
WantedBy=mutil-user.target
# systemctl daemon-reload
# systemctl start mysqld.service
# mysqladmin -u root password 123456
3.9 授权远程登录用户:
# mysql -uroot -p123456
> create user root@'%' identified by '123456';
> grant all privileges on *.* to root@'%';
> alter user 'root'@'%' identified with mysql_native_password by '123456';
> alter user 'root'@'%' identified by '123456' password expire never;
> flush privileges;
4 安装PHP
4.1 安装依赖包:
# yum install gd libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel sqlite sqlite-devel oniguruma oniguruma-devel zip
4.2 编译安装PHP源码包:
# tar -zxvf php-7.4.15.tar.gz -C /usr/local/src/
# cd /usr/local/src/php-7.4.15
# ./configure --prefix=/usr/local/php --with-mysql-sock=/usr/local/mysql/mysql.sock --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-fpm --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip
# make
# make install
# /usr/local/php/bin/php -v
4.3 环境配置:
# ln -s /usr/local/php/bin/* /usr/local/bin/
# ln -s /usr/local/php/bin/* /usr/local/sbin/
# ls /usr/local/bin/
# ls /usr/local/sbin/
4.4 修改配置文件:
# cp -rf /usr/local/src/php-7.4.15/php.ini-production /usr/local/php/php.ini
# cd /usr/local/php
# vim php.ini
962 date.timezone = Asia/Shanghai
#去掉注释,修改时区为上海
1165 mysqli.default_socket = /usr/local/mysql/mysql.sock
#和MYSQL的配置文件一致
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cd etc
# vim php-fpm.conf
17 pid = run/php-fpm.pid
#将这一行的注释去掉
# cd /usr/local/php/etc/php-fpm.d/
# cp www.conf.default www.conf
# vim www.conf
user = nginx
group = nginx
4.5 启动php-fpm:
# /usr/local/php/sbin/php-fpm
4.6 配置nginx解析php:
# vim /usr/local/nginx/conf/nginx.conf
2 user nginx;
43 location / {
44 root html;
#添加index.php用于自动识别php文件
45 index index.html index.htm index.php;
46 }
65 location ~ \.php${
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
70 include fastcgi_params;
71 }
5 测试
5.1 编写测试页面:
# cd /usr/local/nginx/html/
# vim test.php
<?php
phpinfo ();
?>
# vim testdb.php
<?php
$link=mysqli_connect ('localhost','root','123456');
if ($link)
echo "success";
else
echo "fail";
?>
5.2 重启nginx,mysql及php服务:
# systemctl restart nginx.service
# systemctl stop mysqld.service
# systemctl start mysqld.service
# killall php-fpm
# /usr/local/php/sbin/php-fpm
5.3 通过客户端访问:
http://192.x.x.x/test.php
http://192.x.x.x/testdb.php
发表回复