阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP)

230次阅读
没有评论

共计 32113 个字符,预计需要花费 81 分钟才能阅读完成。

Nginx 特性

Nginx 性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
1、相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高。
2、作为负载均衡服务器:Nginx 既可在内部直接支持 Rails 和 PHP,也可支持作为 HTTP 代理服务器对外进行服务。Nginx 用 C 编写而成,不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
3、作为邮件代理服务器:Nginx 同时也是一款非常优秀的邮件代理服务器(最早开发这个产品的目的之一,是作为邮件代理服务器)。

4、反向代理可以根据 url 将请求转向于不同用途的集群,比如图片请求,转向图片服务器集群;视频请求,转身视频服务器集群。

nginx 是一款轻量级的 web 服务器 / 反向代理服务器 / 电子邮件代理服务器,安装非常简单,配置文件也很简洁(还支持 perl 语法)。Nginx 支持平滑加载新配置,还能够在不间断服务的情况下进行软件版本升级。

Apache 特性
1、Apache 是 LAMP 架构最核心的 Web Server,开源、稳定、模块丰富是 Apache 的优势。但 Apache 的缺点是有些臃肿,内存和 CPU 开销大,性能上有损耗,不如一些轻量级的 Web 服务器(譬如:Nginx、Tengine 等)高效,轻量级的 Web 服务器对于静态文件的响应能力来说远高于 Apache 服务器。

2、Apache 做为 Web Server 是负载 PHP 的最佳选择,如果流量很大的话,可以采用 Nginx 来负载非 PHP 的 Web 请求。Nginx 是一个高性能的 HTTP 和反向代理服务器,Nginx 以其稳定、丰富功能集、示例配置文件和低系统资源的消耗而闻名。Nginx 现能支持 PHP 和 FastCGI,也支持负载均衡和容错,可和 Apache 配合使用,是轻量级的 HTTP 服务器的首选。

3、Web 服务器缓存也有多种方案,Apache 提供了自己的缓存模块,也可以使用外加的 Squid 模块进行缓存,这两种方式均可有效提高 Apache 的访问响应能力。Squid Cache 是一个 Web 缓存服务器,支持高效缓存,可作为网页服务器的前置 cache 服务器缓存相关请求以提高 Web 服务器速度。把 Squid 放在 Apache 的前端来缓存 Web 服务器生成动态内容,而 Web 应用程序只需要适当地设置页面实效时间即可。如访问量巨大,则可考虑使用 memcache 作为分布式缓存。

4、PHP 的加速可使用 eAccelerator 加速器,eAccelerator 是一个自由开放源码的 PHP 加速器。它会优化动态内容缓存,提高 PHP 脚本缓存性能,使 PHP 脚本在编译状态下,对服务器的开销几乎完全消除。它还可对脚本起优化作用,以加快其执行效率。使 PHP 程序代码执效率可提高 1-10 倍。

CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)

nginx 优点:

  • 轻量级服务器,相比较 apache 占用的资源更加少。
  • 高并发。
  • 配置文件的语法等简单易懂
  • 社区活跃。
  • 支持 epoll 模型。使得 nginx 可以支持高并发。
  • 利用 nginx 可以对 ip 限速,可以限制连接数

环境:

CentOS 6.8 2.6.32-642.15.1.el6.x86_64

软件:

libiconv-1.14.tar.gz

libmcrypt-2.5.8.tar.gz

mcrypt-2.6.8.tar.gz

mhash-0.9.9.9.tar.gz

mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz(二进制版)

php-5.6.30.tar.gz

nginx-1.12.0.tar.gz

提示:在进入正题之前一定要先去了解下 nginx 的工作原理和常用场景。

不要死记,多操作,多理解,自然就懂了。

看别人操作,不如自己操作。

要能清晰的了解同类产品的区别。

大纲:

  1. 安装 nginx
  2. 启动 nginx
  3. 配置虚拟主机
  4. 安装 mysql 二进制版
  5. 安装 php
  6. 测试 lnmp 环境

nginx

1、安装 nginx

wget http://nginx.org/download/nginx-1.12.0.tar.gz 
  
tar zxvf nginx-1.12.0.tar.gz
  
cd nginx-1.12.0/
  
yum install gcc gcc-c++ zilb.x86_64 zlib-devel.x86_64  pcre-devel.x86_64 pcre.x86_64 
openssl.x86_64 openssl-devel.x86_64-y
  
useradd -M -s /sbin/nologin nginx
  
./configure --help
  
./configure --prefix=/application/nginx1.12.0 --user=nginx --group=nginx --with-pcre 
--with-http_ssl_module --with-http_stub_status_module
  
echo $?
  
make
  
echo $?
  
make install
  
echo $?
  
ln -s /application/nginx1.12.0/ /application/nginx
  
cd /application/nginx
 
nginx 目录结构
conf 配置文件
html 默认站点
logs

日志文件

sbin 命令

总结:

1 选择软件一定不能选择最新的,否则出问题不容易解决,因为第一个吃螃蟹。
2 一定要自己创建用户,否则 nginx 会给默认用户。
3 编译的参数根据自己的实际情况出发。
4 编译、make、make install 要养成 echo $? 的习惯防止出错。
5 做一个软链接优化路径。

2、启动 nginx

/application/nginx/sbin/nginx -t
  
/application/nginx/sbin/nginx
  
lsof -i :80
  
curl localhost

总结:

  • nginx 的检查语法操作是一样的,只是命令名字换了
  • nginx 启动后面不需要任何参数
  • 本地做个访问测试如果能成功则说明网站已经在工作了,在如果外网访问不进来就是其他问题了,比如防火墙 iptables、selinux 等的问题

3、配置虚拟主机

如果熟悉了 Apache 的虚拟主机那么 Nginx 的虚拟主机也很容易理解,而且配置还比 Apache 简单很多。

虚拟主机:

  • 基于域名的虚拟主机
  • 基于 IP 的虚拟主机
  • 基于端口的虚拟主机
mkdir /application/nginx/conf/extra -p
## 把我们的虚拟主机文件放在这个扩展目录中,可以在管理网站的时候更加方便
  
vim /application/nginx/conf/nginx.conf
## 将主配置文件修改为以下内容
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include     extra/blog.conf;
    include     extra/easy.conf;
    include     extra/bad.conf;
}
  
  
vim /application/nginx/conf/extra/blog.conf
## 将虚拟主机 blog 配置文件配置为以下内容,不存在则创建
    server {
        listen       80;
        server_name  www.blog.linuxidc.com;
        location / {
            root   html/blog;
            index  index.html index.htm;
    }
}
  
vim /application/nginx/conf/extra/easy.conf
## 将虚拟主机 easy 配置为以下内容,不存在则创建
    server {
        listen       80;
        server_name  www.easy.linuxidc.com;
        location / {
            root   html/easy;
            index  index.html index.htm;
        }
}
  
vim /application/nginx/conf/extra/bad.conf
## 将虚拟主机 bad 配置文件修改为以下内容,不存在则创建
    server {
        listen       80;
        server_name  www.bad.linuxidc.com;
        location / {
            root   html/bad;
            index  index.html index.htm;
        }
}
  
cd /application/nginx/html/
  
for name in blog bad easy;do mkdir $name; echo "$name.linuxidc.com" 
$name/index.html;
done
## 利用 for 循环创建目录,并向 index.html 中写入内容
  
tree ./
    bad
│   └── index.html
├── blog
│   └── index.html
├── easy
│   └── index.html
  
  
vim /etc/hosts
127.0.0.1 localhost www.blog.linuxidc.com www.easy.linuxidc.org.cn ## 修改本地 hosts 文件,为了配合我们的基于域名的虚拟主机
  
ping -c 1 
  
ping -c 1 
  
ping -c 1  www.bad.linuxidc.com 
  
/application/nginx/sbin/nginx -s reload
## 重启 nginx 服务器
  
curl 
blog.linuxidc.com
  
curl 
bad.linuxidc.com
  
curl 
easy.linuxidc.com

提示:使用 curl 访问域名时返回如上信息即基于域名的虚拟主机搭建成功。

扩展:

* 域名重定向

  • 为什么需要域名重定向,第一是为了防止恶意绑定,最简单的道理就是,域名是别人买的,别人想把域名指向公网中的任意一台主机我们也没有办法。但是用了域名重定向后,可以在使用恶意域名访问我们的服务器后,会在地址栏重定向为我们指定的域名,并访问指定的站点。(理解一个原理,在一个未知域名访问我们的主机时其实是以 IP 的形式访问,也就是说我们重定向的其实是 IP 地址)
  • 还有就是多域名指向同意服务器,提高访问量。
------------------------------------------------------------------
vim /application/nginx/conf/extra/rewrite.conf
## 编译 rewirte.conf 文件不存在则创建,内容如下
    server {
        listen       80;
        server_name  www.rewrite.linuxidc.org;
        rewrite ^/(.*) http://www.easy.linuxidc.com/$1 permanent;
#^/ 表示
#
# 永久有效 
}
----OK------------------------------------------------------------
  
------------------------------------------------------------------
vim /application/nginx/conf/nginx.conf
## 修改 nginx 的主配置文件,注意 include 的顺序这个很重要否则域名重定向就没用了
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include     extra/rewrite.conf;
    include     extra/blog.conf;
    include     extra/easy.conf;
    include     extra/bad.conf;
}
----OK------------------------------------------------------------
  
/application/nginx/sbin/nginx -t
  
/application/nginx/sbin/nginx -s reload
  
vim /etc/hosts
127.0.0.1 localhost www.blog.linuxidc.com www.easy.linuxidc.org.cn 
  www.rewrite.linuxidc.org
  
ping -c 1 
  
curl -L  www.rewrite.linuxidc.org
  
curl -I  www.rewrite.linuxidc.org
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.0
Date: Sun, 16 Apr 2017 14:19:58 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://www.easy.linuxidc.com/

隐藏 nginx 版本号:

vim /application/nginx/conf/nginx.conf
## 修改为以下内容
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
server{
        listen 8080;
        server_name www.linuxidc.win;
        rewrite ^/(.*) http://www.blog.linuxidc.com/$1 permanent;
}
    include     extra/easy.conf;
    include     extra/bad.conf;
    include     extra/blog.conf;
        server_tokens off;
}

apache 隐藏版本号的方法:

—————————-

cat /application/apache/conf/extra/httpd-default.conf
.............
ServerTokens Prod
ServerSignature Off
.............

———————– 

nginx 日志管理

  • 使用 mv 工具和 crontab 工具

具体方法如下:

----------------------------------------------------------------------------
vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format  main  '$remote_addr - $remote_user [$time_local]"$request" '
                      '$status $body_bytes_sent"$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    include     extra/rewrite.conf;
    include     extra/bad.conf;
    include     extra/blog.conf;
    include     extra/easy.conf;
        server_tokens off;
}
  
vim extra/blog.conf
    server {
        listen       80;
        server_name  www.blog.linuxidc.com;
        access_log  logs/blog.access.log  main;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
}
## 其他的配置文件也一样在 server 标签里添加日志信息
----OK------------------------------------------------------------
  
#sed -i '/server_name www.bad.linuxidc.com;/a\\taccess_log  logs\/bad.access.log 
main; 'extra/bad.conf
  
../sbin/nginx -t
  
../sbin/nginx -s reload
  
ll ../logs/
total 220
-rw-r--r-- 1 root root 110155 Apr 17 15:42 access.log
-rw-r--r-- 1 root root      0 Apr 17 15:42 bad.access.log
-rw-r--r-- 1 root root      0 Apr 17 15:42 blog.access.log
-rw-r--r-- 1 root root      0 Apr 17 15:42 easy.access.log
-rw-r--r-- 1 root root  98802 Apr 17 15:43 error.log
-rw-r--r-- 1 root root      6 Apr 16 22:29 nginx.pid
-rw-r--r-- 1 root root      0 Apr 17 15:42 rewrite.access.log
## 可见日志文件已经生成
  
---------------------------------------------------------------------------------
vim /application/nginx/logs/backlog.sh
## 写一个自动备份的脚本
#!/bin/sh
  
for name in rewrite bad blog easy;
do
/bin/mv /application/nginx/logs/${name}.access.log /applog/nginx/access/$(date +%F)_${name}.log
if [$? -eq 0 ]
then
        echo "$(date +%F) ${name}" >> /applog/nginx/access/successfully.txt
else
        echo "$(date +%F) ${name}" >> /applog/nginx/access/error.txt
fi
done
  
/bin/find /applog/nginx/access/ -mtime +7 -exec rm -rf {} \;
  
--- 脚本完成 ------OK------------------------------------------------------------
  
chmod +x /application/nginx/logs/backlog.sh
  
crontab -e
30 1 * * * /application/nginx/logs/backlog.sh
## 晚上访问量少,适合做备份等工作
  
mkdir -p /applog/nginx/access/
 
总结:
  • 基于域名的虚拟主机普遍常用到,基于 IP 和端口的一般在公司内部使用
  • 在修改配置文件之前一定要做好备份,一边修改和对比
  • 创建扩张目录,存放虚拟主机的配置,因为在企业里由于需要配合大量的业务,所以配置内容也会随之增加,如果全部都是在 nginx.conf 里的话会使得整个文件非常的臃肿。
  • apache 的重启:./bin/apachectl  restart
  • nginx 的配置文件每句结尾一定要加上;(分号)
  • windows 修改 hosts 的路径:win+R–> system32–> drivers –> etc–>hosts。如果记事本不能修改,请先以管理员运行记事本,在把 hosts 文件拖入。推荐使用 Notepad++。
  • Apache 服务器在站点目录下没有 index.html 时,可以访问并查看整个网站的目录结构,可以通过修改 httpd.conf 中的“Options Indexes FollowSymLinks”—> “Options -Indexes FollowSymLinks”。nginx 安全新则相对高点,如果没有 index.html 文件直接报错一般是 403.
  • Apache 服务器的默认站点目录是 DocumentRoot。Nginx 是 root   html。
  • 服务器一定要隐藏版本号,否则容易被攻击。

++++++++++++++++++++++nginx 服务安装完成 ++++++++++++++++++++++++

Mysql

4、安装二进制 mysql

mysql 分类:

社区版

商业版

集群

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.32-linux2.6-x86_64.tar.gz 
  
  
tar zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz 
  
cp -avr mysql-5.5.32-linux2.6-x86_64/ /application/
  
cd /application/
  
mv mysql-5.5.32-linux2.6-x86_64/ mysql-5.5.32/
  
ln -s mysql-5.5.32/ mysql
  
useradd -M -s /sbin/nologin mysql
  
cd mysql
  
mkdir /application/mysql/data -p
  
chown -R mysql:mysql /application/mysql-5.5.32/
  
-----------------------------------------------------------------
./scripts/mysql_install_db --basedir=/application/mysql/ 
--datadir=/application/mysql/data/ --user=mysql
  
## 初始化数据库
mysql_install_db 根据版本的不同可能存放的路径也不一样
--basedir 是 mysql 的安装路缙
--datadir 是数据文件存放路径
--user 是用户名
成功的标准是echo $? 没有错误 + 两个 OK 没有 error
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
## 想要开机自动启动,就把 mysql.server 放到正确的位置即 /etc/init.d/mysqld
/application/mysql//bin/mysqladmin -u root password 'new-password'
/application/mysql//bin/mysqladmin -u root -h linuxidc password 'new-password'
Alternatively you can run:
/application/mysql//bin/mysql_secure_installation
## 设置密码的方法
You can start the MySQL daemon with:
cd /application/mysql/ /application/mysql//bin/mysqld_safe &
## 运行数据库
You can test the MySQL daemon with mysql-test-run.pl
cd /application/mysql//mysql-test ; perl mysql-test-run.pl
## 测试数据库
  
提示:/etc/init.d/mysqld实质是复制了 mysql.server 文件,所以一定不要和cd /application/mysql/
 /application/mysql//bin/mysqld_safe & 方法一起用否则会出错
  
---------------------------------------------------------------
  
\cp support-files/my-medium.cnf /etc/my.cnf
  
\cp support-files/mysql.server /etc/init.d/mysqld
  
--------------------------------------
vim /etc/init.d/mysqld
..................
basedir=/application/mysql/
datadir=/application/mysql/data
...................
  
或者
  
#sed -i'46s/\(basedir=\)/\1\/application\/mysql/p' /etc/init.d/mysqld
## 修改 46 行为 basedir=/application/mysql,只限定当前环境,其他环境可能有变化
  
#sed -i'47s/\(datadir=\)/\1\/application\/mysql\/data/p' /etc/init.d/mysqld
## 修改 datadir 为 /application/mysq/data
  
----OK---------------------------------
  
chmod +x /etc/init.d/mysqld
  
/etc/init.d/mysqld start
  
echo "export PATH=/application/mysql/bin:$PATH" >> /etc/profile
  
source /etc/profile
  
----------------------------------------------------
mysql_secure_installation
## 以下内容看自己的需求
  
mysql -uroot -p
  
mysql>show databases;
  
mysql> use mysql
  
mysql> show tables;
  
mysql> select User,Host from user;
  
mysql>DELETE FROM user WHERE User='root' and Host='::1';
## 目前是不会用的到的所以删除,如果有需求就不用删除
  
mysql> quit
  
--OK--------------------------------------------------
 
总结:

a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;
d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;
e) 同一台主机上面可以安装多个 MySQL;
f) 等等其他一些可以根据特定应用场景所作的各种调整。
在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的
时间更长;

PHP 

需要下载以下的依赖包,并且编译:

libiconv(libiconv-1.14.tar.gz)

libmcrypt-2.5.8.tar.gz,加密库

mcrypt-2.6.8.tar.gz

mhash-0.9.9.9.tar.gz

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/142880p2.htm

5、安装 PHP

wget 
  
tar zxvf php-5.6.30.tar.gz
  
cd php-5.6.30/
  
yum  install  libxml2-devel.x86_64   libxml2.x86_64 openssl-devel.x86_64 
libcurl-devel.x86_64    libjpeg-turbo.x86_64   libjpeg-turbo-devel.x86_64   
png*   libpng-devel.x86_64 freetype.x86_64  freetype-devel.x86_64 
libxslt-devel.x86_64    libxslt.x86_64  zlib libxml libjpeg freetype libpng gd 
curl libiconv zlib-devel         libxml2-devellibjpeg-devel freetype-devel 
libpng-devel gd-devel curl-devel  -y
  
编译安装 libiconv1.14:
==============================================
tar zxvf libiconv-1.14.tar.gz 
  
cd libiconv-1.14/
  
./configure --prefix=/usr/local/libiconv
  
make
  
make install
===============================================
  
编译安装 mhash-0.9.9.9:
=================================================
tar zxvf mhash-0.9.9.9.tar.gz
  
cd mhash-0.9.9.9/
  
./configure
  
make && make install
  
================================================
  
编译安装 libmcrypt
==================================================
tar zxvf libmcrypt-2.5.8.tar.gz
  
cd libmcrypt-2.5.8/
  
./configure
  
make && make install
  
cp /usr/local/lib//usr/local/lib64/ -av
## 只正对 64 位操作系统,32 为操作系统直接往下走
  
ln -s /usr/local/lib64/libmcrypt.la/usr/lib64/libmcrypt.la
ln -s/usr/local/lib64/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s/usr/local/lib64/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s/usr/local/lib64/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib64/libmhash.a/usr/lib64/libmhash.a
ln -s/usr/local/lib64/libmhash.la /usr/lib64/libmhash.la
ln -s/usr/local/lib64/libmhash.so /usr/lib64/libmhash.so
ln -s/usr/local/lib64/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s/usr/local/lib64/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s/usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
## 提示我搭好的环境中我并没有在 /usr/local/lib64/ 下找到文件,文件都在 /usr/local/lib,
可以把 /usr/local/lib/ 下的文件复制到 /usr/local/lib64/
=================================================
  
yum install libxslt* -y
## 安装 libxslt*
  
编译安装 mcrypt-2.6.8:
================================================
tar zxvf mcrypt-2.6.8.tar.gz
  
cd mcrypt-2.6.8/
  
./configure  LD_LIBRAPY_PATH=/usr/local/lib
## 原因未知,这个我是百度搜出来的
  
make && make install
================================================
  
=================================================
vim 1.txt
./configure \
--prefix=/application/php5.6.30 \
--with-mysql=/application/mysql  \
--enable-mysqlnd  \
--with-pdo-mysql=mysqlnd        \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-zend-multibyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp    \
--enable-embedded-mysqli  \
--with-mysqli  \
--with-pdo-mysql=/application/mysql
          
  
cat 1.txt | bash
  
echo $?
  
make
  
echo $?
  
make install
  
echo $?
  
ln -s /application/php5.6.30/ /application/php
  
cp php.ini-production /application/php/lib/php.ini
## 提醒:如果是做开发的话就把 php.ini-development 复制过去
  
由于 nginx 调用 PHP 是通过一个 fcgi 的程序,所以,这个程序也是有配置文件的。
  
cd /application/php/etc/
  
cp php-fpm.conf.default php-fpm.conf
  
egrep -v "^$|;" php-fpm.conf
------------------------------------------------------------------------
[global]
pid = /app/logs/php-fpm.pid
error_log = /app/logs/php-fpm.log
 log_level = error
   
rlimit_files = 32768
   
events.mechanism = epoll
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
   
pm = dynamic
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 5
pm.max_spare_servers = 20
   
pm.max_requests = 2048
   
   
slowlog = /app/logs/$pool.log.slow
   
request_slowlog_timeout = 10
--------------------------------------------------------------------------
  
../sbin/php-fpm -t
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
错误:ERROR: Unable to create or open slowlog(/applog/logs/www.log.slow): No such file or directory (2)
解决:mkdir /applog/logs/ -p
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  
../sbin/php-fpm
  
lsof -i :9000
  
================================================ 

我编译 PHP 遇到的错误:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

错误:configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no

解决:

ln -s /application/mysql/lib/libmysqlclient.so /usr/lib64/

ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

问题:checking whether to enable embeddedMySQLi support… yes

checking for mysql_set_server_optionin -lmysqlclient… no

configure: error: wrong mysql libraryversion or lib not found. Check config.log for more information.

解决:–with-mysqli 后面不加路径

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

问题:Don’t know how to define struct flockon this system, set –enable-opcache=no

解决:

以下红色路径看具体 mysql 安装路径而定

32 位系统:

ln -s /usr/local/MySQL/lib/libmysqlclient.so /usr/lib/

ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib/libmysqlclient.so.18

 

64 位系统:

ln -s /usr/local/MySQL/lib/libmysqlclient.so /usr/lib64/libmysqlclient.so

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

问题:configure: error: Please reinstallreadline – I cannot find readline.h

解决:yum install readline-devel.x86_64 -y

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

问题:make: *** [sapi/cli/php] Error 1

解决:

网上统一的解决方式: makeZEND_EXTRA_LIBS=’-liconv’

ln -s /usr/local/lib/libiconv.so.2/usr/lib64/

 

我自己的解决方式:重新编译安装 libiconv(注意编译的的参数 –with-iconv-dir 的路径)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

================= 测试 LNMP 环境 ==========================

cd /application/nginx/

 

————————————————–

vim html/blog/index.php

<?php

phpinfo();

?>

————————————————–

 

vim conf/extra/blog.conf

    server {

        listen       80;

        server_name  www.blog.linuxidc.com;

        access_log  logs/blog.access.log  main;

        location / {

            root   html/blog;

            index  index.php  index.html index.htm;

        }

        location ~ \.php$ {

            root           html/blog;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

            include        fastcgi_params;

            include        fastcgi.conf;

        }

}

—————————————————————————–

./sbin/nginx -t

./sbin/nginx -s reload

curl www.blog.linuxidc.com

错误集:

  • 如果使用 curl 访问时出现 502 错误,网上一大堆解决方法,就是没有说道防火墙的。所以 PHP 服务是自己占用一个端口的,所以需要我们手动开启。iptables -I INPUT -p tcp –dport 9000 -j ACCEPT
  • 错误 404 和 403 一般是站点目录和配置文件有错误,或者服务器没起来等问题。

隐藏 PHP 版本:

vim /application/php/lib/php.ini

expose_php = On

搭建一个自己的开源网站:

opensns、phpcms、wiki 等。

步骤:

  • 下载开源软件包
  • # 如 http://kaiyuan.linuxidc.com/
  • 创建数据库
  • #create database wiki;
  • 创建数据库中的用户用于管理这个网站的数据
  • #grant all on wiki.* towiki@’localhost’identified by‘wiki’;
  • #flush privileges;
  • #quit
  • 解压开源网站到指定的站点目录
  • # 修改权限 chown -Rnginx:nginx 目录
  • 用浏览器访问
  • 安装站点

总结:

LNMP 搭建对于新手来说是比较困难但是要细心,前后要有呼应,理解。

遇到困难先看错误,别急着百度,因为搜出来的大部分都是复制粘贴的。

记录下来每次的错误方便下次解决。

遇到困难,做了好久的,先放松放松,去散步什么的回来说不定就会了。

二进制的 mysql 不推荐新手完,因为他只是预设了一些参数。

 

网上搜了很多,终于知道测试 PHP 和 mysql 连同的代码了:

<?php

      //$link_id=mysql_connect(‘ 主机名 ’,’ 用户 ’,’ 密码 ’);

      $link_id=mysql_connect(‘localhost’,’root’,’RedHat’)or mysql_error();

 

      if($link_id){

              echo”mysql successful”;

      }else{

              echomysql_error();

      }

?> 

## 以上可能有错误,但是还请原谅因为我也是新手,刚刚开始学习 linux,请多多指教。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142880.htm

Nginx 特性

Nginx 性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
1、相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高。
2、作为负载均衡服务器:Nginx 既可在内部直接支持 Rails 和 PHP,也可支持作为 HTTP 代理服务器对外进行服务。Nginx 用 C 编写而成,不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
3、作为邮件代理服务器:Nginx 同时也是一款非常优秀的邮件代理服务器(最早开发这个产品的目的之一,是作为邮件代理服务器)。

4、反向代理可以根据 url 将请求转向于不同用途的集群,比如图片请求,转向图片服务器集群;视频请求,转身视频服务器集群。

nginx 是一款轻量级的 web 服务器 / 反向代理服务器 / 电子邮件代理服务器,安装非常简单,配置文件也很简洁(还支持 perl 语法)。Nginx 支持平滑加载新配置,还能够在不间断服务的情况下进行软件版本升级。

Apache 特性
1、Apache 是 LAMP 架构最核心的 Web Server,开源、稳定、模块丰富是 Apache 的优势。但 Apache 的缺点是有些臃肿,内存和 CPU 开销大,性能上有损耗,不如一些轻量级的 Web 服务器(譬如:Nginx、Tengine 等)高效,轻量级的 Web 服务器对于静态文件的响应能力来说远高于 Apache 服务器。

2、Apache 做为 Web Server 是负载 PHP 的最佳选择,如果流量很大的话,可以采用 Nginx 来负载非 PHP 的 Web 请求。Nginx 是一个高性能的 HTTP 和反向代理服务器,Nginx 以其稳定、丰富功能集、示例配置文件和低系统资源的消耗而闻名。Nginx 现能支持 PHP 和 FastCGI,也支持负载均衡和容错,可和 Apache 配合使用,是轻量级的 HTTP 服务器的首选。

3、Web 服务器缓存也有多种方案,Apache 提供了自己的缓存模块,也可以使用外加的 Squid 模块进行缓存,这两种方式均可有效提高 Apache 的访问响应能力。Squid Cache 是一个 Web 缓存服务器,支持高效缓存,可作为网页服务器的前置 cache 服务器缓存相关请求以提高 Web 服务器速度。把 Squid 放在 Apache 的前端来缓存 Web 服务器生成动态内容,而 Web 应用程序只需要适当地设置页面实效时间即可。如访问量巨大,则可考虑使用 memcache 作为分布式缓存。

4、PHP 的加速可使用 eAccelerator 加速器,eAccelerator 是一个自由开放源码的 PHP 加速器。它会优化动态内容缓存,提高 PHP 脚本缓存性能,使 PHP 脚本在编译状态下,对服务器的开销几乎完全消除。它还可对脚本起优化作用,以加快其执行效率。使 PHP 程序代码执效率可提高 1-10 倍。

CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)

nginx 优点:

  • 轻量级服务器,相比较 apache 占用的资源更加少。
  • 高并发。
  • 配置文件的语法等简单易懂
  • 社区活跃。
  • 支持 epoll 模型。使得 nginx 可以支持高并发。
  • 利用 nginx 可以对 ip 限速,可以限制连接数

环境:

CentOS 6.8 2.6.32-642.15.1.el6.x86_64

软件:

libiconv-1.14.tar.gz

libmcrypt-2.5.8.tar.gz

mcrypt-2.6.8.tar.gz

mhash-0.9.9.9.tar.gz

mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz(二进制版)

php-5.6.30.tar.gz

nginx-1.12.0.tar.gz

提示:在进入正题之前一定要先去了解下 nginx 的工作原理和常用场景。

不要死记,多操作,多理解,自然就懂了。

看别人操作,不如自己操作。

要能清晰的了解同类产品的区别。

大纲:

  1. 安装 nginx
  2. 启动 nginx
  3. 配置虚拟主机
  4. 安装 mysql 二进制版
  5. 安装 php
  6. 测试 lnmp 环境

nginx

1、安装 nginx

wget http://nginx.org/download/nginx-1.12.0.tar.gz 
  
tar zxvf nginx-1.12.0.tar.gz
  
cd nginx-1.12.0/
  
yum install gcc gcc-c++ zilb.x86_64 zlib-devel.x86_64  pcre-devel.x86_64 pcre.x86_64 
openssl.x86_64 openssl-devel.x86_64-y
  
useradd -M -s /sbin/nologin nginx
  
./configure --help
  
./configure --prefix=/application/nginx1.12.0 --user=nginx --group=nginx --with-pcre 
--with-http_ssl_module --with-http_stub_status_module
  
echo $?
  
make
  
echo $?
  
make install
  
echo $?
  
ln -s /application/nginx1.12.0/ /application/nginx
  
cd /application/nginx
 
nginx 目录结构
conf 配置文件
html 默认站点
logs

日志文件

sbin 命令

总结:

1 选择软件一定不能选择最新的,否则出问题不容易解决,因为第一个吃螃蟹。
2 一定要自己创建用户,否则 nginx 会给默认用户。
3 编译的参数根据自己的实际情况出发。
4 编译、make、make install 要养成 echo $? 的习惯防止出错。
5 做一个软链接优化路径。

2、启动 nginx

/application/nginx/sbin/nginx -t
  
/application/nginx/sbin/nginx
  
lsof -i :80
  
curl localhost

总结:

  • nginx 的检查语法操作是一样的,只是命令名字换了
  • nginx 启动后面不需要任何参数
  • 本地做个访问测试如果能成功则说明网站已经在工作了,在如果外网访问不进来就是其他问题了,比如防火墙 iptables、selinux 等的问题

3、配置虚拟主机

如果熟悉了 Apache 的虚拟主机那么 Nginx 的虚拟主机也很容易理解,而且配置还比 Apache 简单很多。

虚拟主机:

  • 基于域名的虚拟主机
  • 基于 IP 的虚拟主机
  • 基于端口的虚拟主机
mkdir /application/nginx/conf/extra -p
## 把我们的虚拟主机文件放在这个扩展目录中,可以在管理网站的时候更加方便
  
vim /application/nginx/conf/nginx.conf
## 将主配置文件修改为以下内容
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include     extra/blog.conf;
    include     extra/easy.conf;
    include     extra/bad.conf;
}
  
  
vim /application/nginx/conf/extra/blog.conf
## 将虚拟主机 blog 配置文件配置为以下内容,不存在则创建
    server {
        listen       80;
        server_name  www.blog.linuxidc.com;
        location / {
            root   html/blog;
            index  index.html index.htm;
    }
}
  
vim /application/nginx/conf/extra/easy.conf
## 将虚拟主机 easy 配置为以下内容,不存在则创建
    server {
        listen       80;
        server_name  www.easy.linuxidc.com;
        location / {
            root   html/easy;
            index  index.html index.htm;
        }
}
  
vim /application/nginx/conf/extra/bad.conf
## 将虚拟主机 bad 配置文件修改为以下内容,不存在则创建
    server {
        listen       80;
        server_name  www.bad.linuxidc.com;
        location / {
            root   html/bad;
            index  index.html index.htm;
        }
}
  
cd /application/nginx/html/
  
for name in blog bad easy;do mkdir $name; echo "$name.linuxidc.com" 
$name/index.html;
done
## 利用 for 循环创建目录,并向 index.html 中写入内容
  
tree ./
    bad
│   └── index.html
├── blog
│   └── index.html
├── easy
│   └── index.html
  
  
vim /etc/hosts
127.0.0.1 localhost www.blog.linuxidc.com www.easy.linuxidc.org.cn ## 修改本地 hosts 文件,为了配合我们的基于域名的虚拟主机
  
ping -c 1 
  
ping -c 1 
  
ping -c 1  www.bad.linuxidc.com 
  
/application/nginx/sbin/nginx -s reload
## 重启 nginx 服务器
  
curl 
blog.linuxidc.com
  
curl 
bad.linuxidc.com
  
curl 
easy.linuxidc.com

提示:使用 curl 访问域名时返回如上信息即基于域名的虚拟主机搭建成功。

扩展:

* 域名重定向

  • 为什么需要域名重定向,第一是为了防止恶意绑定,最简单的道理就是,域名是别人买的,别人想把域名指向公网中的任意一台主机我们也没有办法。但是用了域名重定向后,可以在使用恶意域名访问我们的服务器后,会在地址栏重定向为我们指定的域名,并访问指定的站点。(理解一个原理,在一个未知域名访问我们的主机时其实是以 IP 的形式访问,也就是说我们重定向的其实是 IP 地址)
  • 还有就是多域名指向同意服务器,提高访问量。
------------------------------------------------------------------
vim /application/nginx/conf/extra/rewrite.conf
## 编译 rewirte.conf 文件不存在则创建,内容如下
    server {
        listen       80;
        server_name  www.rewrite.linuxidc.org;
        rewrite ^/(.*) http://www.easy.linuxidc.com/$1 permanent;
#^/ 表示
#
# 永久有效 
}
----OK------------------------------------------------------------
  
------------------------------------------------------------------
vim /application/nginx/conf/nginx.conf
## 修改 nginx 的主配置文件,注意 include 的顺序这个很重要否则域名重定向就没用了
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include     extra/rewrite.conf;
    include     extra/blog.conf;
    include     extra/easy.conf;
    include     extra/bad.conf;
}
----OK------------------------------------------------------------
  
/application/nginx/sbin/nginx -t
  
/application/nginx/sbin/nginx -s reload
  
vim /etc/hosts
127.0.0.1 localhost www.blog.linuxidc.com www.easy.linuxidc.org.cn 
  www.rewrite.linuxidc.org
  
ping -c 1 
  
curl -L  www.rewrite.linuxidc.org
  
curl -I  www.rewrite.linuxidc.org
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.0
Date: Sun, 16 Apr 2017 14:19:58 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: http://www.easy.linuxidc.com/

隐藏 nginx 版本号:

vim /application/nginx/conf/nginx.conf
## 修改为以下内容
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
server{
        listen 8080;
        server_name www.linuxidc.win;
        rewrite ^/(.*) http://www.blog.linuxidc.com/$1 permanent;
}
    include     extra/easy.conf;
    include     extra/bad.conf;
    include     extra/blog.conf;
        server_tokens off;
}

apache 隐藏版本号的方法:

—————————-

cat /application/apache/conf/extra/httpd-default.conf
.............
ServerTokens Prod
ServerSignature Off
.............

———————– 

nginx 日志管理

  • 使用 mv 工具和 crontab 工具

具体方法如下:

----------------------------------------------------------------------------
vim nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format  main  '$remote_addr - $remote_user [$time_local]"$request" '
                      '$status $body_bytes_sent"$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    include     extra/rewrite.conf;
    include     extra/bad.conf;
    include     extra/blog.conf;
    include     extra/easy.conf;
        server_tokens off;
}
  
vim extra/blog.conf
    server {
        listen       80;
        server_name  www.blog.linuxidc.com;
        access_log  logs/blog.access.log  main;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
}
## 其他的配置文件也一样在 server 标签里添加日志信息
----OK------------------------------------------------------------
  
#sed -i '/server_name www.bad.linuxidc.com;/a\\taccess_log  logs\/bad.access.log 
main; 'extra/bad.conf
  
../sbin/nginx -t
  
../sbin/nginx -s reload
  
ll ../logs/
total 220
-rw-r--r-- 1 root root 110155 Apr 17 15:42 access.log
-rw-r--r-- 1 root root      0 Apr 17 15:42 bad.access.log
-rw-r--r-- 1 root root      0 Apr 17 15:42 blog.access.log
-rw-r--r-- 1 root root      0 Apr 17 15:42 easy.access.log
-rw-r--r-- 1 root root  98802 Apr 17 15:43 error.log
-rw-r--r-- 1 root root      6 Apr 16 22:29 nginx.pid
-rw-r--r-- 1 root root      0 Apr 17 15:42 rewrite.access.log
## 可见日志文件已经生成
  
---------------------------------------------------------------------------------
vim /application/nginx/logs/backlog.sh
## 写一个自动备份的脚本
#!/bin/sh
  
for name in rewrite bad blog easy;
do
/bin/mv /application/nginx/logs/${name}.access.log /applog/nginx/access/$(date +%F)_${name}.log
if [$? -eq 0 ]
then
        echo "$(date +%F) ${name}" >> /applog/nginx/access/successfully.txt
else
        echo "$(date +%F) ${name}" >> /applog/nginx/access/error.txt
fi
done
  
/bin/find /applog/nginx/access/ -mtime +7 -exec rm -rf {} \;
  
--- 脚本完成 ------OK------------------------------------------------------------
  
chmod +x /application/nginx/logs/backlog.sh
  
crontab -e
30 1 * * * /application/nginx/logs/backlog.sh
## 晚上访问量少,适合做备份等工作
  
mkdir -p /applog/nginx/access/
 
总结:
  • 基于域名的虚拟主机普遍常用到,基于 IP 和端口的一般在公司内部使用
  • 在修改配置文件之前一定要做好备份,一边修改和对比
  • 创建扩张目录,存放虚拟主机的配置,因为在企业里由于需要配合大量的业务,所以配置内容也会随之增加,如果全部都是在 nginx.conf 里的话会使得整个文件非常的臃肿。
  • apache 的重启:./bin/apachectl  restart
  • nginx 的配置文件每句结尾一定要加上;(分号)
  • windows 修改 hosts 的路径:win+R–> system32–> drivers –> etc–>hosts。如果记事本不能修改,请先以管理员运行记事本,在把 hosts 文件拖入。推荐使用 Notepad++。
  • Apache 服务器在站点目录下没有 index.html 时,可以访问并查看整个网站的目录结构,可以通过修改 httpd.conf 中的“Options Indexes FollowSymLinks”—> “Options -Indexes FollowSymLinks”。nginx 安全新则相对高点,如果没有 index.html 文件直接报错一般是 403.
  • Apache 服务器的默认站点目录是 DocumentRoot。Nginx 是 root   html。
  • 服务器一定要隐藏版本号,否则容易被攻击。

++++++++++++++++++++++nginx 服务安装完成 ++++++++++++++++++++++++

Mysql

4、安装二进制 mysql

mysql 分类:

社区版

商业版

集群

wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.32-linux2.6-x86_64.tar.gz 
  
  
tar zxvf mysql-5.5.32-linux2.6-x86_64.tar.gz 
  
cp -avr mysql-5.5.32-linux2.6-x86_64/ /application/
  
cd /application/
  
mv mysql-5.5.32-linux2.6-x86_64/ mysql-5.5.32/
  
ln -s mysql-5.5.32/ mysql
  
useradd -M -s /sbin/nologin mysql
  
cd mysql
  
mkdir /application/mysql/data -p
  
chown -R mysql:mysql /application/mysql-5.5.32/
  
-----------------------------------------------------------------
./scripts/mysql_install_db --basedir=/application/mysql/ 
--datadir=/application/mysql/data/ --user=mysql
  
## 初始化数据库
mysql_install_db 根据版本的不同可能存放的路径也不一样
--basedir 是 mysql 的安装路缙
--datadir 是数据文件存放路径
--user 是用户名
成功的标准是echo $? 没有错误 + 两个 OK 没有 error
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
## 想要开机自动启动,就把 mysql.server 放到正确的位置即 /etc/init.d/mysqld
/application/mysql//bin/mysqladmin -u root password 'new-password'
/application/mysql//bin/mysqladmin -u root -h linuxidc password 'new-password'
Alternatively you can run:
/application/mysql//bin/mysql_secure_installation
## 设置密码的方法
You can start the MySQL daemon with:
cd /application/mysql/ /application/mysql//bin/mysqld_safe &
## 运行数据库
You can test the MySQL daemon with mysql-test-run.pl
cd /application/mysql//mysql-test ; perl mysql-test-run.pl
## 测试数据库
  
提示:/etc/init.d/mysqld实质是复制了 mysql.server 文件,所以一定不要和cd /application/mysql/
 /application/mysql//bin/mysqld_safe & 方法一起用否则会出错
  
---------------------------------------------------------------
  
\cp support-files/my-medium.cnf /etc/my.cnf
  
\cp support-files/mysql.server /etc/init.d/mysqld
  
--------------------------------------
vim /etc/init.d/mysqld
..................
basedir=/application/mysql/
datadir=/application/mysql/data
...................
  
或者
  
#sed -i'46s/\(basedir=\)/\1\/application\/mysql/p' /etc/init.d/mysqld
## 修改 46 行为 basedir=/application/mysql,只限定当前环境,其他环境可能有变化
  
#sed -i'47s/\(datadir=\)/\1\/application\/mysql\/data/p' /etc/init.d/mysqld
## 修改 datadir 为 /application/mysq/data
  
----OK---------------------------------
  
chmod +x /etc/init.d/mysqld
  
/etc/init.d/mysqld start
  
echo "export PATH=/application/mysql/bin:$PATH" >> /etc/profile
  
source /etc/profile
  
----------------------------------------------------
mysql_secure_installation
## 以下内容看自己的需求
  
mysql -uroot -p
  
mysql>show databases;
  
mysql> use mysql
  
mysql> show tables;
  
mysql> select User,Host from user;
  
mysql>DELETE FROM user WHERE User='root' and Host='::1';
## 目前是不会用的到的所以删除,如果有需求就不用删除
  
mysql> quit
  
--OK--------------------------------------------------
 
总结:

a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;
d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;
e) 同一台主机上面可以安装多个 MySQL;
f) 等等其他一些可以根据特定应用场景所作的各种调整。
在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的
时间更长;

PHP 

需要下载以下的依赖包,并且编译:

libiconv(libiconv-1.14.tar.gz)

libmcrypt-2.5.8.tar.gz,加密库

mcrypt-2.6.8.tar.gz

mhash-0.9.9.9.tar.gz

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/142880p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计32113字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中