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 installcp 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
<?phpphpinfo();
?>

重启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 mysqlcd 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 installvim /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

Linux安装PHP环境LNMP相关推荐

  1. Arch Linux安装桌面环境

    Xfce是众多Linux桌面系统中的一个,以小巧占用系统资源少而著称,本文就带领大家在Arch Linux中安装Xfce桌面系统.前提是你已经安装好了Arch Linux系统. 1.更新系统安装包 在 ...

  2. Linux安装LAMP环境各种问题

    1.  查看linux下是否已经搭建lamp环境 使用的yum安装,它可以帮助我们解决软件自己的依赖关系.我还在后面加了postgresql数据库如果不需要的话可以去掉和postgresql的参数.命 ...

  3. linux安装中文环境,[Linux]Ubuntu 7.04 中文环境的安装

    第一步,要明确:我们所有做的一切,都必须是在root用户下才能完成的.所以,请务必使用root登陆.这里我插入一点root的知识.新装系统后,再终端设置root 密码.命令为 su passwd ro ...

  4. linux安装node环境

    1.服务器node环境安装 nvm安装 nvm是目前主流的node版本管理工具,可以快速安装node环境不需要下载包安装包,配置环境等一下一系列的繁琐步骤 执行以下命令 curl -o- https: ...

  5. linux 安装 tao环境,linux环境安装hbase------不一定需要hadoop

    hbase是分布式的,面向列(族)的数据库, 很常用, 网上介绍一大堆.本文说说在linux环境中安装hbase. 一般来说,都是需要先安装hadoop, 再安装hbase. 但是, 为了简便起见, ...

  6. linux安装PHP环境

    在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件外,还要安装一些相关工具,设置必要参数.而且,如果要使用PHP扩展库,还要进行编译.安装之前要准备如下安装包 ...

  7. linux安装oem环境,【OEM】 oem12c_install_for_linux

    oem12c_install_for_linux 一.状况描述 伴随着oracle database 12c的登场,作为DBA的工作好像越来越少,软件的功能更加智能化.人性化,不知是咱喜欢得瑟还是爱与 ...

  8. 最新 Linux安装项目环境 mysql 完整教程 100%可行.附带所有教程

    1.环境背景(2019-7-15) mysql的版本(MySQL-5.6.22-1.el6.i686.rpm-bundle.tar) 链接:https://pan.baidu.com/s/1-tXGG ...

  9. linux安装toncat环境变量,linux下JDK,tomcat的安装与环境变量配置

    先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,下载后放在/home目录中,当然其它地方也行. 进入安装目录 #cd /home #cp jdk-1_5_0_02-li ...

  10. linux安装交叉编译环境

    (一)交叉编译器的简介 (1)本地编译 在了解交叉编译之前我们首先介绍一下另一个概念:本地编译 之前所做的C开发属于本地编译,即在当前PC下(x86的CPU下),直接编译出可以运行的程序(或者库文件) ...

最新文章

  1. 分析JVM双亲委派模型的类加载源码 自定义类加载器
  2. discuz模板解析注释
  3. Haproxy+Keepalived实现网站双主高可用-理论篇
  4. 以Dubbo为例,聊聊如何为开源项目做贡献
  5. c++语言表白超炫图形_教你用C语言加图形库打造炫酷表白连连看
  6. struts2下面如何同时使用servlet,就是如何实现struts与servlet共存
  7. IGDB|2021年大学生夏令营开始报名啦!
  8. 2017 年度书单 Top 10
  9. 测试面试题,自动化测试与性能测试篇(附答案)
  10. linux移植简介[MS2]
  11. 《为学》 [清]彭端淑
  12. HTML:内存溢出和内存泄漏
  13. AFNetworking网络请求的get和post步骤
  14. 网线RJ45接口针脚
  15. word文档中如何添加目录
  16. 游戏语音SDK解决回声消除的方案
  17. jboot 增加llog4j日志
  18. Qt-FFmpeg开发-保存视频流裸流(11)
  19. 三峡学院计算机调剂,重庆三峡学院2019年硕士研究生调剂信息
  20. 51单片机——红外遥控 C语言入门编程

热门文章

  1. (秒杀项目) 4.7 缓存商品与用户
  2. spring mysql 中文_Spring+mysql+velocity 中文问题解决方法
  3. php 框架_八大PHP开源框架(PHP开发必藏哟)
  4. vba odbc 3704 mysql_[求助]ado对象调用存储过程运行时错误3704
  5. 标定_基于全景基础设施的多摄像机和3D激光雷达校准
  6. pcl_view简单使用
  7. 如何使用文件的fseek函数对文件指针进行操作
  8. CVPR 2021 | 谷歌发布视频全景分割数据集!顺带开发个模型屠榜
  9. Tensorflow基于mnist数据集实现AlexNet
  10. 删除Windows下的Linux系统