LNMP/LAMP
环境:
名称 | Linux | Nginx | MysqL | PHP | Apache |
---|---|---|---|---|---|
版本 | Centos7 | Nginx-1.14.1 | mysql-5.6.25 | PHP-5.6.36 | Apache/2.4.6 |
安装Nginx所需的依赖
gcc安装
安装 Nginx 需要先将官网下载的源码进行编译,而编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install -y gcc-c++
PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。Nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。Nginx也需要此库。命令:
yum install -y pcre pcre-devel
zlib 安装
zlib 库提供了很多种压缩和解压缩的方式 Nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库
yum install -y zlib zlib-devel
OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
Nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。yum install -y openssl openssl-devel
初始化Nginx(配置)
解压完成后进入解压目录
cd /app/tool/Nginx-1.14.1
配置
其实在 Nginx-1.14.0 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
编译安装
执行
make && make install
输出结果最后一行:
@H_502_137@make[1]: Leaving directory `/app/tool/Nginx-1.14.1'
查找安装路径
whereis Nginx
输出结果:
@H_502_137@Nginx: /usr/local/Nginx
启动与重启
启动
停止
重启
先停止再启动
./Nginx -s quit
./Nginx
重载配置文件
当 ngin x的配置文件 Nginx.conf 修改后,要想让配置生效需要重启 Nginx,使用-s reload不用先停止 ngin x再启动 Nginx 即可将配置信息在 Nginx 中生效,如下:
./Nginx -s reload
编译安装PHP
@H_502_137@yum install libxml2-devel ./configure --enable-fpm --with-MysqL --with-MysqLi --with-pdo-MysqL --enable-mbstring make make install cp PHP.ini-development /usr/local/PHP/PHP.ini cp /usr/local/etc/PHP-fpm.conf.default /usr/local/etc/PHP-fpm.conf cp sapi/fpm/PHP-fpm /usr/local/bin vim /usr/local/PHP/PHP.ini # 编辑配置文件 cgi.fix_pathinfo=0 # 保存退出 # 启动fpm /usr/local/bin/PHP-fpm # 编辑配置文件 # index 添加 index.PHP location / { root html; index index.PHP index.html index.htm; } # 取消注释 修改为 $document_root$fastcgi_script_name location ~ \.PHP$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 保存退出 # 测试PHP vim html/index.PHP <?PHP PHPinfo(); ?> # 保存退出 # 重新加载配置文件 ./Nginx -s reload # 访问 172.16.0.6/index.PHP可以看到PHP相关信息
编译安装MysqL
@H_502_137@ yum install -y ncurses-devel automake autoconf bison libtool-ltdl-devel yum install cmake groupadd MysqL useradd -s /sbin/nologin -g MysqL -M MysqL mkdir -p /opt/MysqL/data mkdir -p /opt/MysqL/tmp cd /opt/mysql-5.6.25 cmake -DCMAKE_INSTALL_PREFIX=/opt/MysqL -DMysqL_DATADIR=/opt/MysqL/data -DMysqL_UNIX_ADDR=/opt/MysqL/tmp/MysqL.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DWITH_EMbedDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMysqL_TCP_PORT=3306 -DWITH_DEBUG=0 make && make install /opt/MysqL/scripts/MysqL_install_db --user=MysqL --basedir=/opt/MysqL --datadir=/opt/MysqL/data --user=MysqL #授权 chown -R MysqL:MysqL /opt/MysqL/ cp -f /opt/MysqL/support-files/my*.cnf /etc/my.cnf cp /opt/MysqL/support-files/MysqL.server /etc/init.d/MysqLd # 加权限 chmod +x /etc/init.d/MysqLd # 自启 chkconfig --add MysqLd chkconfig MysqLd on #添加环境 echo "export PATH=$PATH:/opt/MysqL/bin/" >>/etc/profile source /etc/profile # 启动MysqL服务 /etc/init.d/MysqLd start # 连接 MysqL -uroot -p (回车) #修改密码 MysqL> use MysqL; MysqL> update user set password=password('ci123vm') where user='root' and host='localhost'; MysqL> flush privileges; # 远程连接授权 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; # 配置远程连接密码 set password for root@'%' = password('ci1233vm');
PHPMyAdmin安装配置
解压到Nginx/html目录:
@H_502_137@xz -d PHPMyAdmin-4.9.0.1-all-languages.tar.xz tar -xvf PHPMyAdmin-4.9.0.1-all-languages.tar mv PHPMyAdmin-4.9.0.1-all-languages/ /usr/local/Nginx/html/
进入解压目录,进行配置:
@H_502_137@cp config.sample.inc.PHP config.inc.PHP
编辑如下配置:
登录:
http://172.16.0.6/PHPMyAdmin-4.9.0.1-all-languages/index.PHP
补充:
PHP模块缺失可以用PHPize命令在源码目录的ext/下的对应模块下执行:
@H_502_137@/usr/local/bin/PHPize ./configure --with-PHP-config=/usr/local/bin/PHP-config 或: ./configure --with-PHP-config=/usr/local/bin/PHP-config --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib-dir --with-gd make && make install
执行上述命令后,模块就会被编译到配置文件定义的拓展目录下,配置文件路径和拓展路径相关信息都可以通过PHPinfo()函数在界面上查看:
@H_502_137@<?PHP PHPinfo(); ?>
httpd配置整合PHP:
@H_502_137@# 加载PHP模块 整合PHP-fpm LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so AddType application/x-httpd-PHP .PHP AddType application/x-httpd-PHP-source .PHPs # 开启虚拟主机模块 LoadModule vhost_alias_module modules/mod_vhost_alias.so # 加载虚拟主机配置文件 Include conf/extra/httpd-vhosts.conf # 最后加一个 <FilesMatch \.PHP$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
httpd-vhosts.conf示例:
@H_502_137@<VirtualHost *:80> ServerAdmin [email protected] #ServerAdmin 192.168.3.227 DocumentRoot /opt/news ServerName news.ci123.com #ServerName 192.168.3.227 ErrorLog logs/news.xxx.com-error_log #CustomLog "|/usr/local/sbin/cronolog /opt/apache/logs/news.opt.com-access.%Y-%m-%d" combined_log env=!donotlog <Directory /opt/news> Options FollowSymLinks allowoverride None Require all granted RewriteEngine On RewriteBase / RewriteRule ^index\.PHP$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.PHP [L] RewriteRule ^/article/[0-9]+\.html$ /article.PHP?id=$1 [L] </Directory> Alias /social /opt/news/social <Directory /opt/news/social> RewriteEngine On RewriteBase /social RewriteRule ^index\.PHP$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /social/index.PHP [L] </Directory> </VirtualHost>
最近发现一款使用 @H_502_137@Go 语言开发的 @H_502_137@Web 服务器Caddy。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。