原作:https://blog.csdn.net/mxdzchallpp/article/details/82867681

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
---------------------
作者:CyborgLin
来源:CSDN
原文:https://blog.csdn.net/mxdzchallpp/article/details/82867681
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/Gupq/p/10593240.html

环境/---Liunx环境安装相关推荐

  1. kangle环境liunx一键安装脚本

    CentOS5.x/6.x用以下一键脚本 1.kangle官方脚本 linux下easypanel版本安装及升级 (集成了kangle web 服务器和mysql,仅支持centos 5和centos ...

  2. liunx 环境下docker安装mysql

    liunx 环境下docker安装mysql 1.链接虚拟机 无界面启动 vagrant ssh name(虚拟机的名) 2.虚拟机上下载mysql5.7 docker pull mysql5.7 s ...

  3. Liunx 环境 docker-安装redis11

    Liunx 环境 docker-安装redis 1.下载Redis 连接 vagrant : docker ssh k8s-node1(name) 进入su root docker pull redi ...

  4. 阿里云 linux服务器环境搭建学习 安装jdk(一)

    由于公司用于工作开发的电脑性能不佳,平时在工作过程中没问题,但是自己去研究一下新框架的时候,一下跑2个idea+4-5个timcat时性能就不够用了,所以自己购买了一台低配的阿里云服务器,用于自己平时 ...

  5. 【iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决(2016 12 15 更新)...

    〇.前言 在iOS开发中 [CocoaPods](https://github.com/CocoaPods/CocoaPods) 作为库依赖管理工具就是一把利器. 有了 CocoaPods 则无需再通 ...

  6. 国内网络环境优化qiime2安装过程-QIIME 2安装慢或无法下载的解决方案

    文章目录 Fast install qiime2 in China region Note: 安装q2-studio 猜你喜欢 写在后面 原文:为qiime2国内社区贡献点力量:国内网络环境优化qii ...

  7. linux看测试环境版本,最新版 EOS 在 Ubuntu 18.04.1 LTS 环境上的安装测试教程

    EOS主网上线后,本地的开发环境一直没有升级.最近要启动新项目了,所以借着这个计划,彻底重新安装一下环境. 环境安装和配置的文章,已经很多了,但基本都是针对前期版本的.这里我把新旧版本的不同之处,罗列 ...

  8. Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit

    文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...

  9. Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

最新文章

  1. RHEL中的arp命令。
  2. web.xml中load-on-startup的作用
  3. php调用python pkl_Python Pickle的任意代码执行漏洞实践和Payload构造
  4. 课程设计---图书登记管理系统
  5. MySQL where后面的标量子查询使用
  6. IBM Cloud Paks:云端追光者也!
  7. 小米们要“造反”,开撕三大运营商
  8. JAVA比较文件是否相同
  9. 机器学习:多变量线性回归
  10. 人总有盲点,需要共同进步
  11. 给你一个字符串,删除其中的不是英文字母的符号,也就是说除了英文字母之外的字符都应该删除,请你输出删除后的字符串。
  12. 智能陈桥五笔输入法 for linux,科技教程:在Linux下安装陈桥五笔输入法
  13. 12306验证码识别V1.5
  14. keras中的K.gradients()函数
  15. 【科学数据库】数据的合并与分组聚合||||||||
  16. Java 下载 Excel文件打不开
  17. 纯css+html实现的分页器功能
  18. 虎年屠虎:巨亏下的IPO,你也太虎了吧
  19. 宝塔面板重启mysql命令_宝塔linux面板命令大全
  20. JavaWeb EMS员工信息管理系统(servlet+jsp版本)

热门文章

  1. python代码大全o-Python简单I/O操作示例
  2. python编程入门到实践答案-Python编程:从入门到实践
  3. python九九乘法口诀表-Python 九九乘法表
  4. python json.loads()中文问题-解决Python下json.loads()中文字符出错的问题
  5. 北京python培训班价格-北京Python启蒙班
  6. python更新pip失败-新手求助, python 升级 pip 失败
  7. php7.2 的好处,PHP 7.2 中弃用的功能
  8. redux-thunk的简单使用
  9. UVa1354 Mobile Computing
  10. 一致性hash算法简介