linux下部署php、mysql、nginx
前期准备
1、查看旧机器服务情况
service --status-all
2、核实服务版本
nginx -v:nginx/1.10.3
/usr/local/php/bin/php -v:PHP 5.6.30
mysql:5.7.14
3、部署环境
CentOS Linux release 7.4.1708 (Core)
nginx服务
1、依赖安装
sudo yum update -y
sudo yum install -y epel-release
sudo yum install -y gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel
2、下载对应版本
wget http://nginx.org/download/nginx-1.10.3.tar.gz
3、解压包
tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
4、配置、编译、安装
./configure --prefix=/usr/local/nginx --user=root --group=root --with-http_ssl_module
make
sudo make install
5、配置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/nginx/sbin
重新加载环境
source /etc/profile
6、安装完成验证
nginx -v
nginx -t
安装成功,服务配置后启动服务即可~
7、启动服务
指定配置文件启动:nginx -c /usr/local/nginx/conf/nginx.conf
重启:nginx -s reload
8、浏览器访问
安装、启动成功。
php服务
1、下载对应版本
wget https://www.php.net/distributions/php-5.6.30.tar.bz2 404异常
2、官网下载包
3、解压包
tar -zxvf php-5.6.30.tar.gz
4、配置、编译、安装
cd php-5.3.10
./configure --prefix=/usr/local/php5 --with-curl --enable-mbstring --enable-pcntl --enable-zip --with-zlib=/usr/ --with-iconv-dir=/usr --enable-fpm
注:编译过程中可能会提示个别依赖不存在,yum 安装依赖重新编译即可。例:yum -y install libevent-devel、yum install libxml2-devel
make && make install
5、安装成功后系统信息记录
6、设置环境变量
vim /etc/profile
PATH=$PATH:/usr/local/php5/bin
source /etc/profile
7、查看php版本,成功
php -v
8、配置文件
cp /usr/local/packTmp/php-5.6.30/php.ini-development /usr/local/php5/lib
mv php.ini-development php.ini
9、安装php-fpm
yum install php-fpm
10、修改php-fpm 用户、用户组信息
暂不需要修改,不允许使用 root 用户
vim /etc/php-fpm.d/www.conf
11、启动服务
service php-fpm start
mysql服务
1、依赖安装
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
2、下载
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz
3、解压
tar zxvf mysql-5.6.29.tar.gz
cd mysql-5.6.29
4、编译、安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
注:需要 boot 库,自动下载到指定目录下
make
make install
5、初始化
./bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
记录结果信息,包含密码
6、配置文件、服务脚本调整
mv /etc/my.cnf /etc/my.cnf.bak
注:在CentOS 6.4及以后版本操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。目前服务器上保留了配置文件原名称,将内容注释掉了。
cp support-files/mysql.server /etc/init.d/mysql
7、设置自启动
chkconfig mysql on
8、启动服务
service mysql start
9、连接数据库
mysql -u root -p
10、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
11、添加账号信息
CREATE USER 'user_name'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'%';
FLUSH PRIVILEGES;
注:修改完成后可以查看下密码有效期及是否可远程访问。
select user,host,password_expired,password_last_changed from user;
问题排查
nginx、php服务都正常,页面不能正常显示?
1、查看防火墙
-
curl http://127.0.0.1/test.txt 访问静态文件,正常则 nginx 配置没问题,可以访问到项目
-
防火墙一般不会限制
2、查看 nginx 日志
-
access 日志判断是否有请求进来,error 日志分析是否有异常
3、查看端口是否被占用
-
lsof -i:80
4、查看项目日志
nginx 配置 ssl 提示 unknown directive "ssl"?
进入 nginx 源码目录重新编译,替换 sbin 目录下 nginx
https://www.cnblogs.com/linnuo/p/15919685.html
安装php拓展?
注:拓展目录 /usr/lib64/php/modules
1、yum install php-mysqli
2、修改配置文件:/usr/local/php/lib/php.ini
extension=mysqli.so
extension=pdo_mysql.so
3、重启服务
service php-fpm restart
4、查看
php -m | grep mysql
nginx、php 服务正常,无法登录?
原因:
1、php-fpm、nginx 使用的不同用户。
2、session 写入路径权限
解决:
1、统一用户
-
添加 nginx 账号
-
查看账号:cat /etc/passwd
-
更新nginx、php用户
-
vim /etc/php-fpm.d/www.conf
-
/user
-
vim /usr/local/nginx/conf/nginx.conf
-
重启服务
-
2、用户、用户组调整
调整session 写入路径:chown nginx:nginx php
注:变更用户或用户组后,依然登录不跳转,可以删除 session 下文件重试下。

浙公网安备 33010602011771号