1.软件清单、软件包存放位置。
软件存放位置为:/usr/local/src
软件安装位置为:/usr/local/softname
1、下载nginx
http://nginx.org/download/nginx-1.10.1.tar.gz
2、下载MySQL
http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.33.tar.gz
3、下载php
http://cn2.php.net/distributions/php-5.6.26.tar.gz
4、下载cmake(MySQL编译工具)
https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
5、下载pcre (支持nginx伪静态)
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
6、下载openssl(nginx扩展)
https://www.openssl.org/source/openssl-1.0.2j.tar.gz
7、下载zlib(nginx扩展)
http://zlib.net/zlib-1.2.8.tar.gz
8、下载libmcrypt(php扩展)
http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
9、下载yasm(php扩展)
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
10、t1lib(php扩展)
ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz
11、下载gd库安装包
https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.gz
12、libvpx(gd库需要)
http://ftp.osuosl.org/pub/blfs/conglomeration/libvpx/libvpx-1.6.0.tar.bz2
13、tiff(gd库需要)
http://download.osgeo.org/libtiff/tiff-4.0.6.tar.gz
14、libpng(gd库需要)
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.25.tar.gz
15、freetype(gd库需要)
http://download.savannah.gnu.org/releases/freetype/freetype-2.7.tar.gz
16、jpegsrc(gd库需要)
http://www.ijg.org/files/jpegsrc.v9b.tar.gz
17、Boost(编译mysql需要)
http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
安装编译工具及库文件(使用yum命令安装)
yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libxml* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
关闭防火墙:
systemctl stop firewalld #关闭防火墙
syemctl disable firewalld #禁止开机自启
一.安装软件
一、安装MySQL 5.6以后My SQL要用cmake来编译了。所以先装cmake
1、安装cmake
cd /usr/local/src tar zxvf cmake-3.6.2.tar.gz #解压cmake cd cmake-3.6.2 #进入程序安装目录 ./configure #生成makefile文件 make #编写安装过程中的配置 make install #根据makefile文件进行安装。
2、编译安装MySQL (转自 wendi_0506 http://blog.csdn.net/wendi_0506/article/details/39478369/)
groupadd mysql #添加mysql组
useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /soft_data/mysql/data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /soft_data/mysql/data/mysql #设置MySQL数据库存放目录权限
mkdir -p /usr/local/mysql #创建MySQL安装目录
cd /usr/local/src #进入软件包存放目录
cd mysql-5.7.14 #进入目录
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
- -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
- -DMYSQL_DATADIR=/soft_data/mysql/data/mysqldb \
- -DMYSQL_TCP_PORT=3306 \
- -DENABLE_DOWNLOADS=1
make
make install
DCMAKE_INSTALL_PREFIX=dir_name | 设置mysql安装目录 |
-DMYSQL_UNIX_ADDR=file_name | 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock |
-DDEFAULT_CHARSET=charset_name | 设置服务器的字符集。 缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。 |
-DDEFAULT_COLLATION=collation_name | 设置服务器的排序规则。 |
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 |
存储引擎选项: MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。 静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1 可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema) |
-DMYSQL_DATADIR=dir_name | 设置mysql数据库文件目录 |
-DMYSQL_TCP_PORT=port_num | 设置mysql服务器监听端口,默认为3306 |
-DENABLE_DOWNLOADS=bool | 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。 |
添加mysql到环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile #将mysql添加到shell的环境变量中 source /etc/profile #重新载入配置文件 echo $PATH #查看mysql是否加入环境变量 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin OK!
初始化mysql数据库
cd /usr/local/mysql scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
复制mysql服务启动配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 如果存在就覆盖
复制Mysql启动脚本
cd /usr/local/mysql/ cp support-files/mysql.server /etc/init.d/mysqld
启动mysql服务并加入开机自启动(可选这个步骤,以后可以自己启动的)
service mysqld start chkconfig --level 35 mysqld on
查看一下mysql是否开启成功
tcp6 0 0 :::3306 :::* LISTEN 25830/mysqld OK!
修改mysql root用户密码:
mysqladmin -u root password '123456'
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql ln -s /usr/local/mysql/include/mysql /usr/include/mysql
可能会出现的错误.
1、问题: Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid). 解决: 修改/etc/my.cnf 中datadir,指向正确的mysql数据库文件目录
2、问题:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决: 新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。
ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock
3、问题:
MySQL问题解决:-bash:mysql:command not found
原因: 因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,
系统在/usr/bin下面查此命令,所以找不到了
解决办法是: ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接即可
那么到此mysql就安装、配置完了。
二、安装Nginx
1、安装pcre
cd /usr/local/src mkdir /usr/local/pcre tar zxvf pcre-8.39.tar.gz cd pcre-8.39 ./configure --prefix=/usr/local/pcre make make install
2、安装openssl
cd /usr/local/src mkdir /usr/local/openssl tar zxvf openssl-1.0.2j.tar.gz cd openssl-1.0.2j ./config --prefix=/usr/local/openssl make make install echo 'export PATH=$PATH:/usr/local/openssl/bin'>>/etc/profile source /etc/profile
3.安装zilb
cd /usr/local/src mkdir /usr/local/zlib tar -zxf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make make install
4、安装Nginx
groupadd www #创建一个www组 useradd -g www www -s /bin/false 同上添加一个www用户,加入www组,不允许登录系统 cd /usr/local/src tar zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2j --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.39 注意此处的zlib和pcre是你解压源码包后的地址而不是安装地址。否则会报错
make
make install
/usr/local/nginx/sbin/nginx 启动nginx
由于编译安装,没有启动脚本需要编写启动脚本放入/etc/rc.d/init.d/中 将其命名为nginx.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
|
chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限
systemctl enable nginx #开机自启nginx
在浏览器中输入服务器IP地址,会看到下面的界面,说明Nginx安装成功。
三、安装php
1、安装yasm
cd /usr/local/src tar zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make make install
2、安装libmcrypt
cd /usr/local/src tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure make make install
3、安装libvpx
cd /usr/local/src tar xvf libvpx-1.6.0.tar.bz2 cd libvpx-1.6.0 ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9 make make install
4、安装tiff
cd /usr/local/src tar zxvf tiff-4.0.6.tar.gz cd tiff-4.0.6 ./configure --prefix=/usr/local/tiff --enable-shared make make install
5、安装libpng
cd /usr/local/src tar zxvf libpng-1.6.25.tar.gz cd libpng-1.6.25 ./configure --prefix=/usr/local/libpng --enable-shared make make install
6、安装freetype
cd /usr/local/src tar zxvf freetype-2.7.tar.gz cd freetype-2.7 ./configure --prefix=/usr/local/freetype --enable-shared make make install
7、安装jpeg
cd /usr/local/src tar zxvf jpegsrc.v9b.tar.gz cd jpeg-9b ./configure --prefix=/usr/local/jpeg --enable-shared make make install
8、安装libgd (我就使用默认的)
cd /usr/local/src tar zxvf libgd-2.1.1.tar.gz cd libgd-2.1.1 ./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx make make install 如果libgd编译失败,可以先跳过,直接使用系统默认的2.1.0版本,在编译php的时候把参数--with-gd=/usr/local/libgd修改为--with-gd即可。
9、安装t1lib
cd /usr/local/src tar zxvf t1lib-5.1.2.tar.gz cd t1lib-5.1.2 ./configure --prefix=/usr/local/t1lib --enable-shared make without_doc make install
10、安装php
注意:如果系统是64位,请执行以下命令,否则安装php会出错!
\cp -frp /usr/lib64/libltdl.so* /usr/lib/ \cp -frp /usr/lib64/libXpm.so* /usr/lib/
cd /usr/local/src tar -zvxf php-7.0.11.tar.gz cd php-7.0.11 export LD_LIBRARY_PATH=/usr/local/libgd/lib #如果你安装好了libgd你就写这条 不然肯定没意义。 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock (这里我的Mysql、是双实例的和这不一样所以要根据自己的来) --with-pdo-mysql=/usr/local/mysql --with-gd(这里的我的没安装好所以就选这个了) --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/lib64 --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype --enable-mysqlnd make make install
11、配置php
cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录 rm -rf /etc/php.ini #删除系统自带配置文件 ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接到 /etc目录 cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件 ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录 vim /usr/local/php/etc/php-fpm.conf #编辑 pid = run/php-fpm.pid #取消前面的分号 user = www group = www :wq! #保存退出 cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf vim /usr/local/php/etc/php-fpm.d/www.conf #编辑 user = www #设置php-fpm运行账号为www group = www #设置php-fpm运行组为www 设置 php-fpm开机启动 cp /usr/local/src/php-7.0.11/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录 chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限 chkconfig php-fpm on #设置开机启动 vi /usr/local/php/etc/php.ini #编辑配置文件 找到:disable_functions = 修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown, shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl, openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd, dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname, getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups, posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid, posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname #列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。 找到:;date.timezone = 修改为:date.timezone = PRC #设置时区 找到:expose_php = On 修改为:expose_php = Off #禁止显示php版本的信息 找到:short_open_tag = Off 修改为:short_open_tag = ON #支持php短标签 找到opcache.enable=0 修改为opcache.enable=1 #php支持opcode缓存 找到:;opcache.enable_cli=1 #php支持opcode缓存 修改为:opcache.enable_cli=0 在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能 :wq! #保存退出
12、配置nginx支持php
vim /usr/local/nginx/conf/nginx.conf 修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改 user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
找到以下行,将location到大括号的#都删掉同时修改SCRIPT_FILENAME后面的路径。
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
}
/etc/init.d/nginx restart #重启nginx
/etc/init.d/php-fpm restart #重启php-fpm
终篇、测试结果
在/usr/local/nginx/html下
vim index.php <?php phpinfo(); ?> :x
chown www.www /usr/local/nginx/html/ -R #设置目录所有者
chmod 700 /usr/local/nginx/html/ -R #设置目录权限