由于电脑重装系统,之前虚拟机中的所有系统都打不开了,不得已又得从0开始安装。我下载的是centos6.5的镜像,在虚拟机中安装完以后,执行了一下yum update,系统升成了6.7的,但是对于lnmp环境的安装时没有影响的,6.5和6.7的安装方法是一样的。
一、安装php5.4
1.配置yum源
6.7和6.5中默认是没有php5.4版本的,所以我们需要先配置一下yum源。
执行命令:rpm -Uvh /yum/el6/latest.rpm
[root@localhost yum.repos.d]# rpm -Uvh /yum/el6/latest.rpmRetrieving /yum/el6/latest.rpmwarning: /var/tmp/rpm-tmp.qxPwK1: Header V4 DSA/SHA1 Signature, key ID cf4c4ff9: NOKEYPreparing...########################################### [100%]1:webtatic-release ########################################### [100%]
2.安装php5.4
执行完以后查看yum search php54w,可以看到php5.4相关的模块。执行命令安装php5.4
[root@localhost ~]# yum install php54w
安装完后,执行命令可以看到PHP版本信息
[root@localhost ~]# php --versionPHP 5.4.45 (cli) (built: Oct 16 11:24:58) Copyright (c) 1997- The PHP GroupZend Engine v2.4.0, Copyright (c) 1998- Zend Technologies
3.安装php-fpm
[root@localhost ~]# yum install php-fpm.x86_64Loaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfilef * base: * extras: * updates: mirror.* webtatic: sp.Resolving Dependencies--> Running transaction check---> Package php-fpm.x86_64 0:5.3.3-46.el6_7.1 will be installed--> Processing Dependency: php-common(x86-64) = 5.3.3-46.el6_7.1 for package: php-fpm-5.3.3-46.el6_7.1.x86_64--> Running transaction check---> Package php-common.x86_64 0:5.3.3-46.el6_7.1 will be installed--> Processing Conflict: php54w-common-5.4.45-2.w6.x86_64 conflicts php-common < 5.4.0--> Finished Dependency ResolutionError: php54w-common conflicts with php-common-5.3.3-46.el6_7.1.x86_64You could try using --skip-broken to work around the problemYou could try running: rpm -Va --nofiles --nodigest
可以看到倒数第三行报了一个冲突,导致安装失败,冲突的原因是php-fpm包依赖5.3版本的php-common,但是我们安装php5.4的时候安装了5.4版本的php-common,所以造成php-common-5.3安装不上,解决这个冲突只要安装依赖php-common-5.4版本的php-fpm就OK
[root@localhost ~]# yum search php54w | grep fpmphp54w-fpm.x86_64 : PHP FastCGI Process Manager[root@localhost ~]# yum install php54w-fpm.x86_64Loaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfile* base: * extras: * updates: mirror.* webtatic: sp.Resolving Dependencies--> Running transaction check---> Package php54w-fpm.x86_64 0:5.4.45-2.w6 will be installed--> Finished Dependency ResolutionDependencies Resolved====================================================================================================================================================Package Arch Version RepositorySize====================================================================================================================================================Installing:php54w-fpmx86_645.4.45-2.w6 webtatic1.3 MTransaction Summary====================================================================================================================================================Install 1 Package(s)Total download size: 1.3 MInstalled size: 3.8 MIs this ok [y/N]: yDownloading Packages:php54w-fpm-5.4.45-2.w6.x86_64.rpm | 1.3 MB00:13Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning TransactionInstalling : php54w-fpm-5.4.45-2.w6.x86_641/1 Verifying : php54w-fpm-5.4.45-2.w6.x86_641/1 Installed:php54w-fpm.x86_64 0:5.4.45-2.w6Complete!
测试php-fpm服务是否正常
[root@localhost ~]# service php-fpm startStarting php-fpm: [ OK ]
一切顺利!至此php环境就安装完毕,接下来就安装nginx
二.安装nginx
先看看我们都有哪些版本的Nginx
[root@localhost ~]# yum search nginxLoaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfile* base: * extras: * updates: mirror.* webtatic: uk.================================================================ N/S Matched: nginx ================================================================nginx16.x86_64 : A high performance web server and reverse proxy servernginx18.x86_64 : A high performance web server and reverse proxy serverName and summary matches only, use "search all" for everything.
我们选择安装18版本的。
安装的时候发现下载速度奇慢,最后也因为这个安装失败,所以我们现在先替换一下yum源。
rpm -ivh /packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
替换完以后再执行安装。这次下载速度快了很多,安装也很顺利。全部安装完以后,开启nginx服务
[root@localhost yum.repos.d]# service nginx startStarting nginx: [ OK ]
关掉防火墙服务
[root@localhost yum.repos.d]# service iptables stopiptables: Setting chains to policy ACCEPT: filter[ OK ]iptables: Flushing firewall rules:[ OK ]iptables: Unloading modules: [ OK ]
在浏览器中输入虚拟机的ip,当查看到到下图的时候表示Nginx已经安装成功。
三.修改nginx 配置,使其能够识别php脚本
默认安装完nginx以后,是没办法解析php脚本的,需要修改nginx的配置文件才行。
[root@localhost html]# vim /etc/nginx/nginx.conf
1.添加index.php
2.打开FastCGI部分注释(FastCGI、Nginx、php-fpm、php都有哪些关系?稍后文章会详细介绍这一点)
将/scripts改为$document_root
保存退出,重启nginx服务。
进入/usr/share/nginx/html下写一个php脚本,然后测试看能不能打开
[root@localhost html]# vim index.php
<?phpphpinfo();
保存退出,在浏览器中访问该文件,192.168.71.128/index.php(我的虚拟机IP是71.128),如果看到php信息页就表示已经配置成功。接下来就该配置mysql啦。
四.安装MySQL
安装mysql5.5相关的所有的包
[root@localhost ~]# yum install mysql55*Loaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfile* base: * extras: * updates: mirror.* webtatic: sp.Resolving Dependencies--> Running transaction check---> Package mysql55w.x86_64 0:5.5.49-1.w6 will be installed---> Package mysql55w-bench.x86_64 0:5.5.49-1.w6 will be installed--> Processing Dependency: perl(GD) for package: mysql55w-bench-5.5.49-1.w6.x86_64--> Processing Dependency: perl(DBI) for package: mysql55w-bench-5.5.49-1.w6.x86_64---> Package mysql55w-devel.x86_64 0:5.5.49-1.w6 will be installed--> Processing Dependency: openssl-devel for package: mysql55w-devel-5.5.49-1.w6.x86_64---> Package mysql55w-embedded.x86_64 0:5.5.49-1.w6 will be installed---> Package mysql55w-embedded-devel.x86_64 0:5.5.49-1.w6 will be installed---> Package mysql55w-libs.x86_64 0:5.5.49-1.w6 will be installed--> Processing Dependency: libmysqlclient16 for package: mysql55w-libs-5.5.49-1.w6.x86_64---> Package mysql55w-server.x86_64 0:5.5.49-1.w6 will be installed--> Processing Dependency: perl-DBD-MySQL for package: mysql55w-server-5.5.49-1.w6.x86_64---> Package mysql55w-test.x86_64 0:5.5.49-1.w6 will be installed--> Processing Dependency: perl(Time::HiRes) for package: mysql55w-test-5.5.49-1.w6.x86_64--> Running transaction check---> Package libmysqlclient16.x86_64 0:5.1.69-1.w6 will be installed---> Package openssl-devel.x86_64 0:1.0.1e-42.el6_7.4 will be installed--> Processing Dependency: zlib-devel for package: openssl-devel-1.0.1e-42.el6_7.4.x86_64--> Processing Dependency: krb5-devel for package: openssl-devel-1.0.1e-42.el6_7.4.x86_64---> Package perl-DBD-MySQL.x86_64 0:4.013-3.el6 will be installed---> Package perl-DBI.x86_64 0:1.609-4.el6 will be installed---> Package perl-GD.x86_64 0:2.44-3.el6 will be installed---> Package perl-Time-HiRes.x86_64 4:1.9721-141.el6_7.1 will be installed--> Running transaction check---> Package krb5-devel.x86_64 0:1.10.3-42z1.el6_7 will be installed--> Processing Dependency: libselinux-devel for package: krb5-devel-1.10.3-42z1.el6_7.x86_64--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.10.3-42z1.el6_7.x86_64--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.10.3-42z1.el6_7.x86_64---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be installed--> Running transaction check---> Package keyutils-libs-devel.x86_64 0:1.4-5.el6 will be installed---> Package libcom_err-devel.x86_64 0:1.41.12-22.el6 will be installed---> Package libselinux-devel.x86_64 0:2.0.94-5.8.el6 will be installed--> Processing Dependency: libsepol-devel >= 2.0.32-1 for package: libselinux-devel-2.0.94-5.8.el6.x86_64--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.0.94-5.8.el6.x86_64--> Running transaction check---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be installed--> Processing Conflict: mysql55w-libs-5.5.49-1.w6.x86_64 conflicts mysql-libs < 5.5--> Finished Dependency ResolutionError: mysql55w-libs conflicts with mysql-libs-5.1.73-5.el6_7.1.x86_64You could try using --skip-broken to work around the problemYou could try running: rpm -Va --nofiles --nodigest
倒数第三行,又出现一个冲突,现在我们先卸载掉mysql-libs-5.1.73-5.el6_7.1.x86_64
[root@localhost ~]# yum remove mysql-libs-5.1.73-5.el6_7.1.x86_64
卸载成功后,再次执行安装命令
[root@localhost ~]# yum install mysql55*
安装完以后开启mysql服务,查看是否正常
[root@localhost ~]# service mysqld start
启动成功后,我们需要给mysql的root用户分配登录密码
[root@localhost ~]# mysqladmin -u root password 'newpassword'
设置完成后就可以登录mysql控制台了
[root@localhost ~]# mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.5.49 MySQL Community Server (GPL)Copyright (c) 2000, , Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
登录没问题,至此MySQL也就安装完毕了,接下来要做的就是让php能够连接上MySQL
五、安装php-mysql扩展
1.安装扩展
查看是否有安装php-mysql扩展
[root@localhost ~]# php -i | grep mysql
命令结果返回空,说明没有安装,那么现在我们就需要安装这些扩展。搜索yum源,找到合适的扩展包
[root@localhost ~]# yum search all php-mysqlLoaded plugins: fastestmirror, refresh-packagekit, securityLoading mirror speeds from cached hostfile* base: * extras: * updates: mirror.* webtatic: us-east.================================================================ Matched: php-mysql ================================================================php-mysql.x86_64 : A module for PHP applications that use MySQL databasesphp54w-mysqlnd.x86_64 : A module for PHP applications that use MySQL databasesphp55w-mysqlnd.x86_64 : A module for PHP applications that use MySQL databasesphp56w-mysqlnd.x86_64 : A module for PHP applications that use MySQL databasesphp70w-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
安装php54w-mysqlnd,因为我们php是php5.4版本的
[root@localhost ~]# yum install -y php54w-mysqlnd.x86_64
安装完以后重启php-fpm,再次浏览192.168.71.128/index.php就可以看到mysql扩展啦。
下面就写个简单脚本测试一下php连接mysql的情况。
2.测试扩展
首先登录mysql控制台,在test中创建一张表,并写入几条数据
mysql> create table person(-> id int not null primary key auto_increment,-> name char(5) not null-> )engine=innodb default charset=utf8;
mysql> insert into person (name) values ('zhangsan'),('lisi'),('wangwu');
测试表准备好以后,开始写测试脚本
[root@localhost ~]# cd /usr/share/nginx/html/[root@localhost html]# vim mysql.php
<?phptry{$pdo = new PDO('mysql:host=localhost;dbname=test','root','root');$res = $pdo->query('select * from person');foreach ($res as $row) {echo '<pre>';print_r($row);}} catch (PDOException $e) {print "Error:".$e->getMessage()."<br/>";die;}
访问脚本192.168.71.128/mysql.php,如果看到下面内容,说明php-mysql扩展已经没有问题。
六、将lnmp加入开机启动项
经过上面五部的操作,我们的lnmp环境就已经成功搭建完成了,为了后续的使用,我们现在把php-fpm/nginx/mysql都加入到开机启动项中。
[root@localhost html]# chkconfig php-fpm on[root@localhost html]# chkconfig nginx on[root@localhost html]# chkconfig mysqld on
注:如果重启机器后发现nginx访问不了了,请检查一下防火墙是不是打开了,因为centos默认防火墙是开机启动的。
至此,lnmp环境就彻底的搭建完成啦,尽情的享受coding吧~