Linux安装PHP环境LNMP

Linux系统搭建LNMP环境,即Linux+Nginx+mysql+php。

 

服务器版本是CentOS Linux release 7.4.1708,阿里云服务器,所以部署环境之前,需要先登录阿里云服务器管理后台开启端口:80、82、443、3306,其中82端口是我的项目配置站点的端口。

 

打开阿里云官网-》控制台-》云服务器ECS-》安全组-》安全组规则:

随便选中一个规则列,点击“克隆”,弹出页面的“协议类型”选择“HTTP(80)”,“优先等级”输入60,点击完成。

 

1.安装Nginx依赖库

#安装Nginx的编译环境gcc
yum install gcc-c++
 
#nginx的http模块使用pcre解析正则表达式所以安装perl兼容的正则表达式库
yum install -y pcre pcre-devel
 
#nginx使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel
 
#nginx不仅支持http协议,还支持https(即在ssl协议上传输http),如果使用了https,需要安装OpenSSL库
yum install -y openssl openssl-devel

2.安装Nginx

 

下载地址: http://nginx.org/en/download.html 选择下载的版本,我这里选择    nginx-1.15.3,进入到下载路径,输入下载命令:

cd /usr/local/
wget http://nginx.org/download/nginx-1.15.3.tar.gz
tar -zxvf nginx-1.15.3.tar.gz
rm nginx-1.15.3.tar.gz
mv nginx-1.15.3 nginx
cd nginx
./configure --prefix=/usr/local/nginx
make
make install
 
#遇到make错误 /usr/local/nginx 路径不存在不管,继续 make install
 
#添加Nginx环境变量,可以在命令行直接输入Nginx命令
vim /etc/profile
#在最后添加Nginx的路径
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
 
#重新编译环境变量
source /etc/profile
 
#启动nginx
cd sbin
./nginx
 
#我这边启动时报错:
nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
2018/09/25 13:59:56 [emerg] 15555#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)
#需要手动创建logs文件夹
mkdir /usr/local/nginx/logs
#再启动
./nginx

3.安装PHP

#安装php依赖包:
yum install libxml2
yum install libxml2-devel

下载php7,下载地址: http://cn2.php.net/distributions/php-7.2.1.tar.gz ,选择下载的版本,进入到下载路径,输入下载命令:

cd /usr/local
wget http://cn2.php.net/distributions/php-7.2.1.tar.gz
tar -zxvf php-7.2.1.tar.gz
rm php-7.2.1.tar.gz
mv php-7.2.1 php
cd php
./configure --prefix=/usr/local/php --with-zlib --enable-zip --with-openssl --enable-fpm --enable-mbstring --with-libdir=lib64
make
make install
 
cp php.ini-production /usr/local/php/lib/php.ini
cp sapi/fpm/php-fpm /etc/init.d/php-fpm
#添加执行权限
chmod +x /etc/init.d/php-fpm
#php-fpm的配置文件
cp etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
 
#设置默认启动php-fpm子进程数和最大启动数
vim /usr/local/php/etc/php-fpm.d/www.conf
pm.max_children = 200
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
 
#设置环境变量
vim /etc/profile
#最后一行加入
export PATH=/usr/local/php/bin:$PATH
 
#刷新环境变量
source /etc/profile
 
#启动
/etc/init.d/php-fpm

重启php-fpm:

 

#找到master的进程ID

ps -ef | grep php

kill ID

#然后再次启动

/etc/init.d/php-fpm

配置nginx支持php 编辑对应的nginx配置文件,我的配置文件路径/usr/local/nginx/conf/nginx.conf

 

vim /usr/local/nginx/conf/nginx.conf

#在http模块里面添加下面内容

server {

    listen       82;

    server_name  localhost 47.92.151.19;

    root         /opt/www;

    location / {

        root   html;

        index  index.html index.htm index.php;

    }

 

    location ~ \.php$ {

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME  /opt/www$fastcgi_script_name;

        include        fastcgi_params;

    }

}

在/opt/www下新建index.php

 

vi index.php

<?php

phpinfo();

?>

重启nginx

 

nginx -s reload

浏览器输入IP地址:82/index.php就可以看到phpinfo的信息,配置成功,若不成功再重启下php-fpm。

 

安装composer

 

curl -sS https://getcomposer.org/installer | php

#将composer.phar文件移动到bin目录以便全局使用composer命令

mv composer.phar /usr/local/bin/composer

#切换国内源

composer config -g repo.packagist composer https://packagist.phpcomposer.com

 

#如果提示:

Do not run Composer as root/super user! Seehttps://getcomposer.org/rootfor details

#是因为composer不希望我们用root账号去操作,则需要创建一个账号

useradd -g root composer

#切换到composer账号

su composer

#使用composer账号进行composer命令操作

4.安装mysql

下载地址: https://dev.mysql.com/downloads/mysql/5.6.html#downloads ,选择Linux-Generic

 

tar -zxvf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz

rm mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.6.41-linux-glibc2.12-x86_64 mysql

 

#添加用户组

groupadd mysql

#添加用户mysql 到用户组mysql

useradd -g mysql mysql

 

cd mysql/

mkdir -p data/mysql

chown -R mysql:mysql ./

./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql --pid-file=/usr/local/mysql/data/mysql.pid

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

cp support-files/my-default.cnf /etc/my.cnf

 

#如果./scripts/mysql_install_db报错:FATAL ERROR: please install the following Perl modules before executing,解决:

yum install -y perl-Module-Install.noarch

#如果./scripts/mysql_install_db报错:Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while loading shared,解决:

yum install libaio* -y

 

 

#修改启动脚本

vi /etc/init.d/mysqld

#修改项:

basedir=/usr/local/mysql/

datadir=/usr/local/mysql/data/mysql

 

#启动服务

service mysqld start

 

#测试连接

./bin/mysql -uroot

 

#加入环境变量,在最后加上下面内容,这样可以在任何地方用mysql命令了

vim /etc/profile

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

 

#重新编译环境变量

source /etc/profile

 

#创建远程访问账号-只对单数据库有权限

mysql -u root -p

create user rootweb@'%' identified by 'dwfe21&uwd';

grant all privileges on news_db.* to rootweb@'%';

flush privileges;

 

#创建本地连接数据库账号-只对单数据库有权限

create user rootlocal@'localhost' identified by 'dwfe21&uwd';

grant all privileges on news_db.* to rootlocal@'localhost';

flush privileges;

 

#mysql服务器命令:

#启动mysql

service mysqld start

#关闭mysql

service mysqld stop

#查看运行状态

service mysqld status

5.安装redis

下载地址:https://redis.io/download

 

wget http://download.redis.io/releases/redis-4.0.11.tar.gz

tar -zxvf redis-4.0.11.tar.gz

rm redis-4.0.11.tar.gz

mv redis-4.0.11 redis

cd redis

make

 

#设置redis服务后台启动

vi redis.conf

设置daemonize yes

 

#启动服务

src/redis-server redis.conf

 

#测试

src/redis-cli

6.安装git客户端

 

yum install -y git

7.配置nginx支持thinkphp路由

修改nginx配置

 

vim /usr/local/nginx/conf/nginx.conf

#修改上面步骤设置的站点信息为:

server {

    listen       82;

    root        /opt/www;

    server_name  localhost 47.92.151.19;

 

    location / {

        index  index.htm index.html index.php;

        if (!-e $request_filename) {

           rewrite  ^/(.*)$  /index.php/$1  last;

           break;

        }

    }

    location ~ \.php/?.*$ {

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        include        fastcgi.conf;

 

        set $fastcgi_script_name2 $fastcgi_script_name;

        if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {

            set $fastcgi_script_name2 $1;

            set $path_info $2;

        }

        fastcgi_param   PATH_INFO $path_info;

        #下面两句是给fastcgi权限,可以支持 ?s=/module/controller/action的url访问模式

        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        #下面两句才能真正支持 index.php/index/index/index的pathinfo模式

        fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;

        fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;

    }

}

 

#重启nginx

nginx -s reload

8.配置不同环境读取对应的数据库配置

由于本地开发环境与现实环境的数据库配置或者其他配置不一致,随意可以设置环境变量来控制。

编辑nginx的配置,设置环境变量:

 

vim /usr/local/nginx/conf/nginx.conf

#在我们配置的站点的fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;下面加上这句

fastcgi_param  ENV_TYPE product;

 

#重启ngixn

nginx -s reload

 

代码判断的话就是:

$env_type = empty($_SERVER['ENV_TYPE']) ? 'develop' : $_SERVER['ENV_TYPE'];

if($env_type == 'product') {

// 返回生成环境配置

}else {

// 返回测试环境配置

}

9.安装pdo_mysql拓展

运行ThinkPHP5项目发现数据库报错:could not find driver,phpinfo发现没有启动pdo_mysql拓展,需要安装pdo_mysql拓展。

 

cd /usr/local/php/ext/pdo_mysql

phpize

#如果提示Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. 解决:

yum install autoconf

 

#注意路径指向的是自己的mysql安装路径

./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql

make

make install

 

vim /usr/local/php/lib/php.ini

#打开extension=pdo_mysql的注释

extension=pdo_mysql

 

#重启php-fpm

ps -ef | grep php 找到master的进程ID,kill,启动 /etc/init.d/php-fpm

#phpinfo看到pdo_mysql就完成了

10.安装node.js

由于我用到node,附上node的安装方法。

下载地址: http://nodejs.cn/download/

 

tar -xvf node-v10.8.0-linux-x64.tar.xz

rm node-v10.8.0-linux-x64.tar.xz

mv node-v10.8.0-linux-x64 node

cd node

#软链接配置

ln -s /usr/local/node/bin/node /usr/local/bin/node

ln -s /usr/local/node/bin/npm /usr/local/bin/npm

#测试

node -v

npm -v

 

#因为官方镜像下载速度比较慢,若需要设置镜像地址为淘宝:

npm config set registry https://registry.npm.taobao.org

 

posted @ 2019-06-25 09:54  路闻man  阅读(615)  评论(0编辑  收藏  举报