1. LNMP architecture introduced:
When we talk about when LAMP PHP as a module in Apache, but in LNMP in PHP is a service, when the user requests nginx give it to php and mysql to interact! Like this static, such as pictures or html, nginx will deal directly, thus speeding up access speed! It comes to speed, in fact, a common site if you can not see what effect, if the visit but if a purely static site, nginx be able to demonstrate its advantages! nginx Another advantage thanks to its high concurrency support!
2. Install mysql and mysql before installation is the same.
Attached: mysql installation method:
Mysql several common installation package: rpm, source code, compiled binary-free.
You can go to view the installation package courses used in the r.aminglinux.com in.
1. Check the current system version #uname -a linux
2. Enter the default installation path download. #cd / usr / local / src /
3. Locate the system corresponding binary coded packages r.aminglinux.com site. Then download: wget *** Enter
If prompted wget is not installed, installed with yum install wget command.
(Hint: the process of installing wget, the network nowhere to go backstage to start VM NAT or VM DHCP service.)
4. Download MYSQL 5.6 binaries.
wget
http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
The download address is / usr / local / src directory. In the following directory Unzip the downloaded binary-encoded files.
tar zxvf mysql-5.6.43-linux-glib2.12-x86_64.tar.gz
6. Move and create mysql directory / usr / local / mysql
mv mysql-5.6.43-linux-glib2.12-x86_64 /usr/local/mysql
7. 进入到 /usr/local/mysql 目录里面。创建mysql 用户
useradd mysql
8. 遇到错误,需要搜索安装的包。命令:yum list | grep perl |grep -i dumper .实在搞不定去www.baidu.com www.google.com r.aminglinux.com
9. 实际上是依赖perl-Data-Dumper 包。先安装之。
yum install -y perl-Data-Dumper
10. 运行初始化程序:
./scripts/mysql_install_db --user=mysql --datadir=data/mysql
11. 提示会需要安装libaio,然后再运行上述命令./scripts/mysql_install_db --user=mysql --datadir=data/mysql
yum install -y libaio
12.如何检验安装成功? 这个检测命令必须在刚刚执行完成之后做。
echo $? 结果:0
13. 如何反查安装包的来源? rpm -qf /etc/my.cnf 查询包的来源
14. 拷贝配置文件到my.cnf : cp support-files/my-default.cnf /etc/my.cnf
也可以不拷贝该文件,直接修改datadir=./usr/local/mysql socket = /tmp/mysql.sock
15. 配置启动脚本。
cp support-files/mysql.server /etc/init.d/mysqld
16. 对启动脚本进行编译。只修改basedir=/usr/local/mysql datadir=/data/mysql
17. 把服务添加到系统默认启动列表中去。
chkconfig --list 检查列表
chkconfig --add mysqld
18. 启动服务:两种方式
1. /etc/init.d/mysqld start
2. service mysqld start
19. 在启动过程中,如果遇到如下的错误。请检查一下.datadir 的路径,在/etc/my.cnf 文件中。把datadir下的路径更改为./data/mysql 就可以了!
3.安装php
安装完成之后,同样执行make && make install 命令操作。
安装下来之后我们发现其实比之前安装PHP要多了两个目录 sbin 和 var
-
sbin:实际上就是启动php-fpm服务的目录
-
var:实际上就是存放PHP日志的,当然这个我们可以指定的
-
log: php日志目录;
-
run:进程PID目录
-
php-fpm 选项参数用法:-i -m -t
[root@ying01 php-5.6.32]# /usr/local/php-fpm/sbin/php-fpm -i //查看PHP信息
[root@ying01 php-5.6.32]# /usr/local/php-fpm/sbin/php-fpm -m //查看PHP模块
[root@ying01 php-5.6.32]# /usr/local/php-fpm/sbin/php-fpm -t //测试PHP配置语法
4. 配置PHP
进入到 PHP解压缩包。具体位置是在 /usr/local/src/php-5.6.39. 把php.ini-production 这个文件拷贝到/usr/local/php-fpm/etc/php.ini 中。
it
进入网站:
http://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/d15z/php-fpm.conf && book.aminglinux.com
把这个文件拷贝到PHP的安装目录下面。
拷贝镜像脚本:
加入到启动列表:
启动服务:service php-fpm start
5. nginx 介绍:
因为nginx处理静态文件的能力要比apache好很多,所以很多企业在建站的时候一般都是用java写的,然后会选择tomcat,但是tomcat处理静态文件的能力不是太好就会叠加选择nginx。
nginx特点:
-
体积小
-
处理能力强
-
并发高
-
可扩展性好
Nginx应用场景:web服务、反向代理、负载均衡
Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并 Nginx核心+lua(开发语言)相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928
6. 安装Nginx
1. 进入到源代码下载目录: cd /usr/local/src 下载nginx安装包
n
2. 对下载的nginx文件进行解压缩: tar zxf nginx-1.14.2.tar.gz ;
进入nginx-1.14.2下目录。初始化:.configure --prefix=/usr/local/ngnix
3. 初始化之后 make && make insatll 安装nginx
4.在安装好的nginx文件夹下面,有四个文件:
/usr/local/nginx目录下的子目录:
子目录
释义
conf
nginx配置文件
html
主页样例文件
logs
站点日志
sbin
核心进程文件
nginx -t 选项: 测试配置语法错误
[root@ying01 nginx-1.4.7]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
5.3 Nginx配置
-
设置nginx脚本
在init.d目录下,新建nginx脚本文件
[root@ying01 nginx-1.4.7]# vim /etc/init.d/nginx
以下为脚本内容.....
#!/bin/bash# chkconfig: - 30 21# description: http service.# Source Function Library
. /etc/init.d/functions# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esacexit $RETVAL
然后增加权限,以及启动服务;
[root@ying01 nginx-1.4.7]# chmod 755 /etc/init.d/nginx
[root@ying01 nginx-1.4.7]# chkconfig --add nginx
[root@ying01 nginx-1.4.7]# chkconfig nginx on
编辑配置文件
进入nginx/conf/目录下,把默认的配置文件作为备份;
[root@ying01 nginx-1.4.7]# cd /usr/local/nginx/conf/
[root@ying01 conf]# ls
fastcgi.conf koi-utf nginx.conf uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default
[root@ying01 conf]# mv nginx.conf nginx.conf.1 //把原配置文件作为备份
[root@ying01 conf]# ls
fastcgi.conf koi-utf nginx.conf.1 uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default
新建nginx.conf配置文件,并按下面写入内容
[root@ying01 conf]# vim nginx.conf
以下为配置内容.....
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 6000;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';
sendfile on;
tcp_nopush on;
keepalive_timeout 30;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 10m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm
application/xml;
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
}
相关名词,释义
user nobody nobody; 运行服务的用户是谁
worker_processes 2;定义子进程的数量
worker_rlimit_nofile
51200;最多可以打开多少个文件
worker_connections 6000;允许最大的连接数
server; 下面对应的就是虚拟主机配置
server_name localhost;定义网站的域名
root /usr/local/nginx/html;定义网站的根目录
location ~ .php$;配置解析PHP
fastcgi_pass unix:/tmp/php-fcgi.sock;监听端口或者监听socket,通过此命令去执行
fastcgi_pass 127.0.0.1:9000;(或者携程这种方式,服务器IP地址+端口)
-
启动nginx服务
[root@ying01 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@ying01 conf]# /etc/init.d/nginx start //开启服务
Starting nginx (via systemctl): [ 确定 ]
[root@ying01 conf]# ps aux |grep nginx //查看相关服务
root 63447 0.0 0.0 24844 784 ? Ss 17:20 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody 63448 0.0 0.1 27148 3356 ? S 17:20 0:00 nginx: worker process
nobody 63449 0.0 0.1 27148 3356 ? S 17:20 0:00 nginx: worker process
root 63451 0.0 0.0 112720 980 pts/0 S+ 17:20 0:00 grep --color=auto nginx
配置完nginx,进行测试
[root@ying01 conf]# curl localhost
<!DOCTYPE html><html><head><title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style></head><body><h1>Welcome to nginx!</h1><p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p></body></html>
-
解析PHP
[root@ying01 conf]# vim /usr/local/nginx/html/1.php //新建1.php页面,写入以下内容
以下为1.php内容...
<?phpecho "hello world";
测试解析PHP
[root@ying01 conf]# curl localhost/1.php //进行测试,成功解析
hello world[root@ying01 conf]#