PHP 安装
准备工作(必要的依赖包)
yum -y install bzip2-devel curl-devel freetype-devel gcc libjpeg-devel libpng-devel libxslt-devel libxml2-devel openssl-devel pcre-devel pcre-devel zlib-devel
本地下载安装包
http://php.net/get/php-7.0.11.tar.gz/from/a/mirror (下载PHP-7.0.11.tar.gz)
将安装包远程传到服务器上
scp PHP-7.0.11.tar.gz username@ip:/usr/local/PHP-7.0.11.tar.gz
解压安装包
tar -zxvf PHP-7.0.11.tar.gz
注:如果报错
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
原因 : 这个压缩包没有用gzip格式压缩,所以不用加z指令!
tar -xvf PHP-7.0.11.tar.gz配置安装变量
./configure –prefix=/usr/local/PHP –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-kerberos –with-libdir=lib64 –with-libxml-dir –with-MysqLi –with-openssl –with-pcre-regex –with-pdo-MysqL –with-pdo-sqlite –with-pear –with-png-dir –with-jpeg-dir –with-xmlrpc –with-xsl –with-zlib –with-bz2 –with-mhash –enable-fpm –enable-bcmath –enable-libxml –enable-inline-optimization –enable-gd-native-ttf –enable-mbregex –enable-mbstring –enable-opcache –enable-pcntl –enable-shmop –enable-soap –enable-sockets –enable-sysvsem –enable-sysvshm –enable-xml –enable-zip
注:./configure –prefix=/usr/local/PHP 是安装路径,可以改成自己喜欢的安装路径。
编译源码
//在解压目录执行编译命令:make
cd PHP-7.0.11
make注:编译会花费一些时间,耐心等待即可。编译完成的最后会提示你执行make test命令。就是对上一步 make 的检查,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0。
安装PHP
make install
配置PHP
将PHP源码包(/usr/local/PHP-7.0.11)中的PHP.ini-development文件复制到/usr/local/PHP/下,更名为PHP.ini。
配置PHP.ini
- cgi.fix_pathinfo=0
启动PHP-fpm
检查PHP-fpm工作情况
PHP-fpm 服务器默认的端口是9000,查看9000端口是否有进程被监听
- netstat -tln | grep 9000
安装Nginx
准备工作必要依赖包安装
在安装Nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。
- yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
本地下载安装包
https://nginx.org/download/ (下载Nginx-1.9.9.tar.gz)
将安装包远程传到服务器上
scp PHP-7.0.11.tar.gz username@ip:/usr/local/Nginx-1.9.9.tar.gz
解压安装包
tar -zxvf Nginx-1.9.9.tar.gz
配置/编译
检测安装是否成功
如果在这个环节报错:
Nginx: [alert] could not open error log file: open()
"/usr/local/Nginx/logs/error.log" Failed (2: No such file or directory)
2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/Nginx/logs/access.log" Failed (2: No such file or directory)- mkdir logs
- chmod 700 logs
监听查询查看
- ps aux|grep Nginx
直接输入IP地址,页面渲染为:
【异常处理】
如果没有上面的渲染页面,我们则需要Telnet 连接下:
telnet Ip地址 80
如果报连接失败,则说明服务器的80端口是打不开的。
【解决方案】
firewall-cmd –query-port=80/tcp
说明80端口还真没打开呀!
(⊙o⊙)开启80端口走起!
firewall-cmd –add-port=80/tcp –permanent
注: –permanent #永久生效,没有此参数重启后失效
o( ̄ヘ ̄o#)重启防火墙
systemctl restart firewalld(^o^)/~刷新浏览器!
设置Nginx开机启动
注:所有的开机启动都要在 /etc/rc.d/rc.local 中
配置Nginx
编辑Nginx配置文件/etc/Nginx/conf/Nginx.conf,主要修改Nginx的server {}配置块中的内容,修改location块,追加index.PHP让Nginx服务器默认支持index.PHP为首页:
然后配置.PHP请求被传送到后端的PHP-fpm模块,默认情况下PHP配置块是被注释的,此时去掉注释并修改为以下内容:
主要修改的就是fastcgi_param设置为:
SCRIPT_FILENAME $document_root$fastcgi_script_name
修改完这些保存并退出,然后重启Nginx:
/etc/Nginx/sbin/Nginx -s reload检测是否配置成功
MysqL安装
【运行环境】查看自己主机的属性(选择适合主机的MysqL包)
- more /etc/issue
【安装方法】阐述
第一种是通过源码自行编译安装,这种适合高级用户定制MysqL的特性,这里不做说明;
第二种是通过编译过的二进制文件进行安装。
一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件;
第二种是使用RPM或其他包进行安装,这种安装进程会自动完成系统的相关配置,所以比较方便。
【检查安装包】检查是否已安装
- rpm -qa | grep -i MysqL
- *注:grep的-i选项表示匹配时忽略大小写
可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了–nodeps选项,忽略了依赖关系:
- rpm -e MysqL-libs-5.1.73-7.el6.x86_64 --nodeps
-
添加MysqL组和MysqL用户,用于设置MysqL安装目录文件所有者和所属组。
【二进制文件安装】
下载安装包
点击下载链接地址下载安装包MysqL-5.7.17-linux-glibc2.5-i686.tar.gz 到本地
上传到服务器
- scp MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz user@ip:/usr/local
解压缩安装包
- tar -zxvf MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz
更改目录名称(太长了)
进入MysqL文件夹,也就是MysqL所在的目录,并更改所属的组和用户。
开始作死安装o( ̄ヘ ̄o#)
执行MysqL_install_db脚本,对MysqL中的data目录进行初始化并创建一些系统表格。注意MysqL服务进程MysqLd运行时会访问data目录,所以必须由启动MysqLd进程的用户(就是我们之前设置的MysqL用户)执行这个脚本,或者用root执行,但是加上参数–user=MysqL。
配置文件o( ̄√ ̄o#)
- cd support-files
- //复制my.cnf 到 /etc/my.cnf (MysqLd启动时自动读取)
- cp my-default.cnf /etc/my.cnf
- *注意:如果你在安装时Linux虚拟机时同时安装了默认的MysqL,此时操作以上步骤,终端将会提示你文件已存在是否覆盖,输入yes覆盖即可。
- //配置数据库编码
- vi /etc/my.cnf
- //在这份文件中可以添加以下配置信息(如果有修改即可)
- [MysqL]
- default-character-set=utf8
- [MysqLd]
- default-storage-engine=INNODB
- character_set_server=utf8
- //复制MysqL.server 到/etc/init.d/ 目录下【目的想实现开机自动执行效果】
- 执行命令:cp MysqL.server /etc/init.d/MysqL (MysqL是服务名)
- //修改 /etc/init.d/MysqL 参数
- vi /etc/init.d/MysqL
- //给与2个目录位置
- basedir=/usr/local/MysqL
- datadir=/usr/local/MysqL/data
-
-
cd MysqL/bin
//初始化
./MysqLd --initialize --user=MysqL --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data
注:
生成出一个data目录,代表数据库已经初始化成功
并且MysqL的root用户生成一个临时密码:SHNq8Qvd2g>L(最好先记录这个临时密码)
记住最后的root@localhost:密码给数据库加密
./MysqL_ssl_rsa_setup --datadir=/usr/local/MysqL/data
-
给数据库加密
./MysqL_ssl_rsa_setup –datadir=/usr/local/MysqL/data`启动MysqL(为了不让进程卡主,可在启动MysqL的命令后加上&代表此进程在后台运行)
./MysqLd_safe --user=MysqL &
检查
ps -ef | grep MysqL
- 登录MysqL数据库咯O(∩_∩)O哈哈