LNMP/LAMP
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 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。默认配置(推荐)
编译
./configure
编译安装
执行
make && make install
输出结果最后一行:
make[1]: Leaving directory `/app/tool/nginx-1.14.1'
查找安装路径
whereis nginx
输出结果:
nginx: /usr/local/nginx
启动与重启
启动
进入sbin目录
cd /usr/local/nginx/sbin
启动
./nginx
停止
先查出nginx进程id再使用kill命令强制杀掉进程
./nginx -s stop
停止:等待nginx进程处理任务完毕进行停止
./nginx -s quit
重启
先停止再启动
./nginx -s quit
./nginx
重载配置文件
当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:
./nginx -s reload
编译安装php
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
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目录:
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/
进入解压目录,进行配置:
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/下的对应模块下执行:
/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()函数在界面上查看:
<?php
phpinfo();
?>
httpd配置整合php:
# 加载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示例:
<VirtualHost *:80>
ServerAdmin noc@corp-ci.com
#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>
最近发现一款使用 Go
语言开发的 Web
服务器Caddy。其配置更为简洁,并可以自动申请及配置 SSL 证书(推荐)。
LNMP/LAMP的更多相关文章
- HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署
HHVM起源于Facebook公司,是一个开源的PHP虚拟机,使用JIT的编译方式以及其他技术,让PHP代码的执行性能大幅提升.HHVM提升PHP性能的途径,采用的方式就是替代Zend引擎来生成和执行 ...
- 腾讯云服务器安装宝塔面板快速配置LNMP/LAMP网站系统
我们在选择购买腾讯云服务器之后,有部分用户肯定是用来建站用途的.毕竟云服务器的性能和功能比虚拟主机优秀很多.腾讯云服务器拥有香港.北京.广州.上海.美国等多个机房,可以安装Linux和Windows系 ...
- 一键安装LNMP/LAMP
安装步骤:1.使用putty或类似的SSH工具登陆VPS或服务器: 登陆后运行:yum install screen安装 screen screen -S lnmp创建一个名字为lnmp的会话 2. ...
- Vultr VPS建站攻略 – 一键安装宝塔面板架设LNMP/LAMP Web环境
我们选择VULTR VPS建站的还是比较多的,其主要原因在于商家的稳定,毕竟我们用来建站选择服务器价格考虑的不是主要的(当然VULTR价格也是比较便宜),最为主要的是因为VULTR商家比较稳定,而且多 ...
- 一键安装 lnmp/lamp/lanmp
1.使用putty或类似的SSH工具登陆VPS或服务器 # screen -S lnmp 如果提示screen: command not found 命令不存在可以执行:yum install scr ...
- 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. ...
- phpStudy for Linux (lnmp+lamp一键安装包)
phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Tengine/Lighttpd/IIS7/8/6 phpStudy for Linux 支持Apache/Ng ...
- Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境
Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...
- 【Linux】Centos6.8下一键安装Lnmp/Lamp环境
[下载一键安装软件包] 百度云地址:https://pan.baidu.com/s/1TZqGKtE-46gxW96Ptfp4gA 网址:https://lnmp.org/ [步骤] 通过第三方远程工 ...
随机推荐
- python基础(六):列表的使用(下)
列表排序的三种方式 sort()方法:原地修改列表的排序方法 注 1:" 默认是升序" ,参数 reverse=True,表示将列表降序. 注 2:" 原地修改列表&qu ...
- Dynamics CRM安装教程四:DNS配置
在为MS CRM 配置Claims-based认证之前,你需要在域控服务器的DNS中添加一些记录,来解析CRM的各个断点,添加內容如下(本次环境全部安装在一台机子中): AD FS 服务器(例: ad ...
- Java性能调优实战,覆盖80%以上调优场景
Java 性能调优对于每一个奋战在开发一线的技术人来说,随着系统访问量的增加.代码的臃肿,各种性能问题便会层出不穷. 日渐复杂的系统,错综复杂的性能调优,都对Java工程师的技术广度和技术深度提出了更 ...
- Spring Boot自动配置原理
使用Spring Boot之后,一个整合了SpringMVC的WEB工程开发,变的无比简单,那些繁杂的配置都消失不见了,这 是如何做到的? 一切魔力的开始,都是从我们的main函数来的,所以我们再次来 ...
- Spring Boot 实现配置文件加解密原理
Spring Boot 配置文件加解密原理就这么简单 背景 接上文<失踪人口回归,mybatis-plus 3.3.2 发布>[1] ,提供了一个非常实用的功能 「数据安全保护」 功能,不 ...
- 我自横刀向天笑,手写Spring IOC容器,快来Look Look!
目录 IOC分析 IOC是什么 IOC能够带来什么好处 IOC容器是做什么工作的 IOC容器是否是工厂模式的实例 IOC设计实现 设计IOC需要什么 定义接口 一:Bean工厂接口 二:Bean定义的 ...
- React函数式组件的性能优化
优化思路 主要优化的方向有2个: 减少重新 render 的次数.因为在 React 里最重(花时间最长)的一块就是 reconction(简单的可以理解为 diff),如果不 render,就不会 ...
- spring data jpa之Auditing 表的创建时间,更新时间自动生成策略
java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...
- vue.js中使用set方法 this.$set
vue教程中有这样一个注意事项: 第一种具体情况如下: 运行结果: 当利用索引改变数组某一项时,页面不会刷新.解决方法如下: 运行结果: 三种方式都可以解决,使用Vue.set.vm.$set()或者 ...
- python 利用opencv去除图片水印
python 去除水印"人工"智能去除水印 这两天公司来了一个新的需求--去除水印,对于我一个从未接触过的这种事情的人来说,当时我是蒙的.不过首先我就去搜索了一下是否有该种合适的功 ...