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(配置)

  1. 解压完成后进入解压目录

    cd /app/tool/nginx-1.14.1

  2. 配置

    其实在 nginx-1.14.0 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。

    • 默认配置(推荐)

      编译

      ./configure

编译安装

  1. 执行

    make && make install

  2. 输出结果最后一行:

    1. make[1]: Leaving directory `/app/tool/nginx-1.14.1'
  3. 查找安装路径

    whereis nginx

    输出结果:

    1. nginx: /usr/local/nginx

    启动与重启

  4. 启动

    • 进入sbin目录

      cd /usr/local/nginx/sbin

    • 启动

      ./nginx

  5. 停止

    • 先查出nginx进程id再使用kill命令强制杀掉进程

      ./nginx -s stop

    • 停止:等待nginx进程处理任务完毕进行停止

      ./nginx -s quit

  6. 重启

    先停止再启动

    ./nginx -s quit

    ./nginx

  7. 重载配置文件

    当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:

    ./nginx -s reload

编译安装php

  1. yum install libxml2-devel
  2. ./configure --enable-fpm --with-mysql --with-mysqli --with-pdo-mysql --enable-mbstring
  3. make
  4. make install
  5. cp php.ini-development /usr/local/php/php.ini
  6. cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
  7. cp sapi/fpm/php-fpm /usr/local/bin
  8. vim /usr/local/php/php.ini
  9. # 编辑配置文件
  10. cgi.fix_pathinfo=0
  11. # 保存退出
  12. # 启动fpm
  13. /usr/local/bin/php-fpm
  14. # 编辑配置文件
  15. # index 添加 index.php
  16. location / {
  17. root html;
  18. index index.php index.html index.htm;
  19. }
  20. # 取消注释 修改为 $document_root$fastcgi_script_name
  21. location ~ \.php$ {
  22. root html;
  23. fastcgi_pass 127.0.0.1:9000;
  24. fastcgi_index index.php;
  25. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  26. include fastcgi_params;
  27. }
  28. # 保存退出
  29. # 测试php
  30. vim html/index.php
  31. <?php
  32. phpinfo();
  33. ?>
  34. # 保存退出
  35. # 重新加载配置文件
  36. ./nginx -s reload
  37. # 访问 172.16.0.6/index.php可以看到php相关信息

编译安装mysql

  1. yum install -y ncurses-devel automake autoconf bison libtool-ltdl-devel
  2. yum install cmake
  3. groupadd mysql
  4. useradd -s /sbin/nologin -g mysql -M mysql
  5. mkdir -p /opt/mysql/data
  6. mkdir -p /opt/mysql/tmp
  7. cd /opt/mysql-5.6.25
  8. 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
  9. make && make install
  10. /opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
  11. #授权
  12. chown -R mysql:mysql /opt/mysql/
  13. cp -f /opt/mysql/support-files/my*.cnf /etc/my.cnf
  14. cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
  15. # 加权限
  16. chmod +x /etc/init.d/mysqld
  17. # 自启
  18. chkconfig --add mysqld
  19. chkconfig mysqld on
  20. #添加环境
  21. echo "export PATH=$PATH:/opt/mysql/bin/" >>/etc/profile
  22. source /etc/profile
  23. # 启动mysql服务
  24. /etc/init.d/mysqld start
  25. # 连接
  26. mysql -uroot -p
  27. (回车)
  28. #修改密码
  29. mysql> use mysql;
  30. mysql> update user set password=password('ci123vm') where user='root' and host='localhost';
  31. mysql> flush privileges;
  32. # 远程连接授权
  33. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
  34. # 配置远程连接密码
  35. set password for root@'%' = password('ci1233vm');

phpMyAdmin安装配置

解压到nginx/html目录:

  1. xz -d phpMyAdmin-4.9.0.1-all-languages.tar.xz
  2. tar -xvf phpMyAdmin-4.9.0.1-all-languages.tar
  3. mv phpMyAdmin-4.9.0.1-all-languages/ /usr/local/nginx/html/

进入解压目录,进行配置:

  1. 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/下的对应模块下执行:

  1. /usr/local/bin/phpize
  2. ./configure --with-php-config=/usr/local/bin/php-config
  3. 或:
  4. ./configure --with-php-config=/usr/local/bin/php-config --with-jpeg-dir --with-png-dir --with-freetype-dir --with-zlib-dir --with-gd
  5. make && make install

执行上述命令后,模块就会被编译到配置文件定义的拓展目录下,配置文件路径拓展路径相关信息都可以通过phpinfo()函数在界面上查看:

  1. <?php
  2. phpinfo();
  3. ?>

httpd配置整合php:

  1. # 加载php模块 整合php-fpm
  2. LoadModule proxy_module modules/mod_proxy.so
  3. LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
  4. AddType application/x-httpd-php .php
  5. AddType application/x-httpd-php-source .phps
  6. # 开启虚拟主机模块
  7. LoadModule vhost_alias_module modules/mod_vhost_alias.so
  8. # 加载虚拟主机配置文件
  9. Include conf/extra/httpd-vhosts.conf
  10. # 最后加一个
  11. <FilesMatch \.php$>
  12. SetHandler "proxy:fcgi://127.0.0.1:9000"
  13. </FilesMatch>

httpd-vhosts.conf示例:

  1. <VirtualHost *:80>
  2. ServerAdmin noc@corp-ci.com
  3. #ServerAdmin 192.168.3.227
  4. DocumentRoot /opt/news
  5. ServerName news.ci123.com
  6. #ServerName 192.168.3.227
  7. ErrorLog logs/news.xxx.com-error_log
  8. #CustomLog "|/usr/local/sbin/cronolog /opt/apache/logs/news.opt.com-access.%Y-%m-%d" combined_log env=!donotlog
  9. <Directory /opt/news>
  10. Options FollowSymLinks
  11. allowoverride None
  12. Require all granted
  13. RewriteEngine On
  14. RewriteBase /
  15. RewriteRule ^index\.php$ - [L]
  16. RewriteCond %{REQUEST_FILENAME} !-f
  17. RewriteCond %{REQUEST_FILENAME} !-d
  18. RewriteRule . /index.php [L]
  19. RewriteRule ^/article/[0-9]+\.html$ /article.php?id=$1 [L]
  20. </Directory>
  21. Alias /social /opt/news/social
  22. <Directory /opt/news/social>
  23. RewriteEngine On
  24. RewriteBase /social
  25. RewriteRule ^index\.php$ - [L]
  26. RewriteCond %{REQUEST_FILENAME} !-f
  27. RewriteCond %{REQUEST_FILENAME} !-d
  28. RewriteRule . /social/index.php [L]
  29. </Directory>
  30. </VirtualHost>

最近发现一款使用 Go 语言开发的 Web 服务器Caddy。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。

LNMP/LAMP的更多相关文章

  1. HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署

    HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升.HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行 ...

  2. 腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站系统

    我们在选择购买腾讯云服务器之后,有部分用户肯定是用来建站用途的.毕竟云服务器的性能和功能比虚拟主机优秀很多.腾讯云服务器拥有香港.北京.广州.上海.美国等多个机房,可以安装Linux和Windows系 ...

  3. 一键安装LNMP/LAMP

    安装步骤:1.使用putty或类似的SSH工具登陆VPS或服务器: 登陆后运行:yum install screen安装  screen screen -S lnmp创建一个名字为lnmp的会话 2. ...

  4. Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境

    我们选择VULTR VPS建站的还是比较多的,其主要原因在于商家的稳定,毕竟我们用来建站选择服务器价格考虑的不是主要的(当然VULTR价格也是比较便宜),最为主要的是因为VULTR商家比较稳定,而且多 ...

  5. 一键安装 lnmp/lamp/lanmp

    1.使用putty或类似的SSH工具登陆VPS或服务器 # screen -S lnmp 如果提示screen: command not found 命令不存在可以执行:yum install scr ...

  6. phpstudy linux (lnmp,lamp)一键安装

    phpStudy for Linux 支持Apache/Nginx/Tengine/Lighttpd, 支持php5.2/5.3/5.4/5.5切换 已经在centos-6.5,debian-7.4. ...

  7. phpStudy for Linux (lnmp+lamp一键安装包)

    phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Tengine/Lighttpd/IIS7/8/6 phpStudy for Linux 支持Apache/Ng ...

  8. Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  9. 【Linux】Centos6.8下一键安装Lnmp/Lamp环境

    [下载一键安装软件包] 百度云地址:https://pan.baidu.com/s/1TZqGKtE-46gxW96Ptfp4gA 网址:https://lnmp.org/ [步骤] 通过第三方远程工 ...

随机推荐

  1. 阿里妈妈Java后端 社招5面(Offer已拿)

    最近由于个人原因, 由于前面两面的时间过去的有点久了,只能根据记忆大概写些记得问题.   阿里妈妈1面 40mins(2021-02-22) 1. 能简单介绍下自己和自己做的项目吗? 2. 关于项目的 ...

  2. upload-labs通关历程

    使用靶场前,先配置php版本为5.2,和下列对应配置. php.ini magic_quotes_gpc  Off php<5.3.4 httpd.conf AddType applicatio ...

  3. 【剑指offer】10:矩形覆盖

    题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: ①方法一 对于这种题没有思路怎么办?可以先从最 ...

  4. kubespray续签k8s证书

    查看证书过期时期 [root@node1 ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not ...

  5. 老学长的TODOLIST

    初期: 一.基本算法: (1)枚举(poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法 (4)递推 (5)构造法(poj3295)(这种 ...

  6. 100多个很有用的JavaScript函数以及基础写法大集合

    100多个很有用的JavaScript函数以及基础写法大集合 1.document.write("");为 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:docume ...

  7. hdu4284 dfs+floyd

    题意:       给你n个城市,m条边,要有h个必须旅游和打工的城市,问你能不能从1把所有必须的h个城市全部旅游并且打工完... 思路:       先一遍floyd跑出全局最短路,然后暴力枚举出打 ...

  8. 从苏宁电器到卡巴斯基第24篇:难忘的三年硕士时光 II

    没办法,还是先打好基础吧 其实在我知道自己面试失败后,第一个想法就是将面试官问我的问题都总结出来,然后通过查权威的资料,找出所有问题的答案,背下所有的答案,大概过一到两个月吧,再面试金山.当时我是这么 ...

  9. Python脚本破解图形验证码(tesserocr和pytesseract)

    在学习之前,我们先了解OCR.tesseract.tesserocr.pytesseract和opencv这几个跟图片处理有关的库. OCR(Optical Character Recognition ...

  10. LINQ之查询语法

    新开一节LINQ的入门讲解. LINQ(Language Integrated Query)语言集成查询,是C#语言的扩展,它的主要功能是从数据集中查询数据,就像通过sql语句从数据库查询数据一样(本 ...