CentOS 7 部署LNMP环境
缘由由于工作的原因需要经常搭建LNMPPHP7MySQL5.7Nginx的环境虽然网上有不少教程但是目前为止还没有找到一个完成符合我的教程所以每次部署环境的时候都是打开几个教程进行部署的所以还是挺麻烦的今天也是抽点时间归纳一下教程。一、修改yum源[rootlocalhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [rootlocalhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm [rootlocalhost ~]# rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm二、安装Nginx、MySQL、PHP[rootlocalhost ~]# yum -y install nginx [rootlocalhost ~]# yum -y install mysql-community-server [rootlocalhost ~]# yum -y install php72w php72w-devel php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-mcrypt.x86_64 php72w-pdo.x86_64 php72w-mysqlnd php72w-fpm php72w-opcache php72w-pecl-redis php72w-pecl-mongo php72w-mcrypt三、配置1、配置MySQLMySQL安装完成之后在/var/log/mysqld.log 文件中给出root生成一个 默认密码。[rootlocalhost ~]# systemctl start mysqld # 启动 MySQL [rootlocalhost ~]# grep temporary password /var/log/mysqld.log # 查找默认密码 2017-04-10T02:58:16.806931Z 1 [Note] A temporary password is generated for rootlocalhost: iacFXpWt-6gJ登陆MySQL[rootlocalhost ~]# mysql -uroot -piacFXpWt-6gJ修改root密码mysql ALTER USER rootlocalhost IDENTIFIED BY MyPass1!;或者mysql set password for rootlocalhostpassword(123abc);详见MySQL官网密码策略详细说明https://dev.mysql.com/doc/ref…设置开机启动[rootlocalhost ~]# systemctl enable mysqld重启服务[rootlocalhost ~]# systemctl restart mysqld默认配置文件路径配置文件/etc/my.cnf日志文件/var/log/mysqld.log服务启动脚本/usr/lib/systemd/system/mysqld.servicesocket 文件/var/run/mysqld/mysqld.pid2、配置Nginx安装完成以后查看自己防火墙是否开启如果已开启我们需要修改防火墙配置开启Nginx外围端口访问。[rootlocalhost ~]# systemctl status firewalld开启80/443端口[rootlocalhost ~]# firewall-cmd --zonepublic --add-port80/tcp --permanent [rootlocalhost ~]# firewall-cmd --zonepublic --add-port443/tcp --permanent出现success表明添加成功命令含义–zone #作用域–add-port80/tcp #添加端口格式为端口/通讯协议–permanent #永久生效没有此参数重启后失效设置开机启动[rootlocalhost ~]# systemctl enable nginx配置PHP支持在server { } 里添加location / { #定义首页索引文件的名称 index index.php index.html index.htm; } # PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }重启Nginx服务[rootlocalhost ~]# systemctl start nginx # 启动 Nginx3、设置开机启动 php-fpm[rootlocalhost ~]# systemctl enable php-fpm [rootlocalhost ~]# systemctl start php-fpm # 启动 php-fpm4、测试在 /usr/share/nginx/html 文件下创建php文件输出 phpinfo 信息浏览器访问 http://内网IP地址/phpinfo.php如果看到PHP信息说明安装成功至此LNMP的环境就已经搭建好了。##5、扩展swooleswoole扩展是按照PHP标准扩展构建的。使用phpize来生成编译检测脚本./configure来做编译配置检测make进行编译make install进行安装。请下载releases版本的swoole直接从github主干上拉取最新代码可能回编译不过如无特殊需求请务必编译安装swoole最新版本如当前用户不是root可能没有PHP安装目录的写权限安装时需要sudo或者su如果是在git分支上直接git pull更新代码重新编译前务必要执行make clean安装准备安装前必须保证系统已经安装了下列软件php-7.0 或更高版本gcc-4.8 或更高版本makeautoconfpcre (CentOS系统可以执行命令yum install pcre-devel)[rootlocalhost ~]# yum -y install postgresql-devel [rootlocalhost ~]# yum install glibc-headers gcc-c git-core gcc autoconf cmake libcurl4-openssl-dev openssl libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11 minizip openssl-devel下载地址https://github.com/swoole/swoole-src/releaseshttp://pecl.php.net/package/swoolehttp://git.oschina.net/swoole/swoole[rootlocalhost ~]# wget http://pecl.php.net/get/swoole-4.2.6.tgz [rootlocalhost ~]# tar -zxvf swoole-4.2.6下载源码包后在终端进入源码目录执行下面的命令进行编译和安装新手编译示例[rootlocalhost ~]# cd swoole-4.2.6 [rootlocalhost ~]# phpize (ubuntu 没有安装phpize可执行命令sudo apt-get install php-dev来安装phpize) [rootlocalhost ~]# ./configure [rootlocalhost ~]# make [rootlocalhost ~]# make install进阶编译示例初次接触swoole的开发者请先尝试上方简单编译如果有进一步的需求和本本调整一下示例的编译参数https://wiki.swoole.com/wiki/page/6.htmlPECL安装Swoole注意PECL发布时间晚于Github发布时间Swoole项目已收录到PHP官方扩展库除了手工下载编译外还可以通过PHP官方的pecl命令一键下载安装[rootlocalhost ~]# pecl install swoole安装过程中需要根据自己的情况进行配置如果没有清晰的思路可以全部选为yes。配置php.ini编译安装成功后修改php.ini 加入extensionswoole.so或者在 /etc/php.d/下新建并并写入 # vim /etc/php.d/swoole.ini ; Enable swoole extension module extensionswoole.so通过php -m或phpinfo()来查看是否成功加载了swoole.so如果没有可能是php.ini的路径不对可以使用php --ini来定位到php.ini的绝对路径。#5、添加MySQL远程连接在开发调试的环境中通常需要利用数据库管理软件进行管理数据库所以需要添加数据库的远程连接。##登陆数据库[rootlocalhost ~]# mysql -uroot -p查询MySQL数据库是否允许远程IP访问命令如下[rootlocalhost ~]# use mysql; [rootlocalhost ~]# select host, user from user;查询结果为127.0.0.1或者localhost或者当前服务器域名则表示不允许远程连接。开启远程访问操作命令如下[rootlocalhost ~]# GRANT ALL PRIVILEGES ON *.* TO root%IDENTIFIED BY 111qqqpwd WITH GRANT OPTION; [rootlocalhost ~]# FLUSH PRIVILEGES;查看远程端口是否打开[rootlocalhost ~]# firewall-cmd --list-port开启3306端口[rootlocalhost ~]# firewall-cmd --zonepublic --add-port3306/tcp --permanent重新启动防火墙[rootlocalhost ~]# systemctl restart firewalld6、参考资料https://segmentfault.com/a/1190000009012613https://www.cnblogs.com/hello-tl/p/9404655.htmlhttps://my.oschina.net/sokes/blog/826705https://wiki.swoole.com/wiki/page/6.html