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 下文件重试下。

posted @ 2025-03-11 15:29  所见即我  阅读(214)  评论(0)    收藏  举报