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。
cp /usr/local/PHP-7.0.11/PHP.ini-development /usr/local/PHP/PHP.ini cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf
配置PHP.ini
cgi.fix_pathinfo=0
启动PHP-fpm
/usr/local/PHP/sbin/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
配置/编译
cd Nginx-1.9.9 //注:编译 (地址可以自己定义) ./configure --prefix=/etc/Nginx make make install
检测安装是否成功
cd /etc/Nginx/sbin ./Nginx
如果在这个环节报错:
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开机启动
vim /etc/rc.d/rc.local #开机启动 /etc/Nginx/sbin/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检测是否配置成功
touch test.PHP vi test.PHP PHPinfo();
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安装目录文件所有者和所属组。
groupadd MysqL useradd -r -g 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
更改目录名称(太长了)
mv MysqL-5.7.17-linux-glibc2.5-x86_64 MysqL
进入MysqL文件夹,也就是MysqL所在的目录,并更改所属的组和用户。
cd MysqL chown -R MysqL . chgrp -R MysqL .
开始作死安装o( ̄ヘ ̄o#)
执行MysqL_install_db脚本,对MysqL中的data目录进行初始化并创建一些系统表格。注意MysqL服务进程MysqLd运行时会访问data目录,所以必须由启动MysqLd进程的用户(就是我们之前设置的MysqL用户)执行这个脚本,或者用root执行,但是加上参数–user=MysqL。
cd MysqL chown -R MysqL . chgrp -R 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
-
passwd MysqL #给MysqL用户设置一个密码 #给目录/usr/local/MysqL 更改拥有者 chown -R MysqL:MysqL /usr/local/MysqL/
-
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哈哈
//登录 ./MysqL -uroot -p回车后输入之前的临时密码 //修改密码 set password=password('新密码');