[Linux] PHP程序员玩转Linux系列-lnmp环境的搭建

1.PHP程序员玩转Linux系列-怎么安装使用CentOS

在平常的工作中,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行配置,然后在浏览器上能够正常打开运行查看项目。CentOS中安装软件有好几种方式,我经常用的是包安装方式,因为这种非常简单一句命令就能安装成功,这也是与windows下安装软件最大的不同点。包安装方式就一个关键单词就是yum。

解决找不到nginx包的问题

我先安装一下web服务器nginx,按好这个软件,他就可以监听80端口,绑定域名,提供web服务,就能在浏览器访问我们的项目。我使用命令 yum install nginx ,此时报错No package nginx available,这是没有这个包啊,这个时候需要安装一下企业Linux扩展包epel,使用命令yum install epel-release,然后从新试一下安nginx,这个时候就可以安装了,并且解决了依赖问题。使用service nginx start开启nginx

yum install epel-release
yum install nginx
service nginx start

解决web服务无法ip访问的问题 

此时我打开windows的浏览器,访问我上一篇设置的地址:http://192.168.2.100 ,无法访问到,遇到这种情况,我先使用ps命令查看一下nginx的进程是否开启,然后使用netstat命令查看一下80端口是否监听

ps aux|grep nginx
netstat -altupn|grep 80

这两个命令查看后发现都是正常的,那应该是防火墙给阻拦了,我使用service iptables stop 关闭掉了防火墙,这时候访问ip,nginx的测试页面就出现了,说明确实是防火墙问题,我要开放防火墙的80端口,iptables的开放端口配置文件是/etc/sysconfig/iptables,我复制了它自带的那条22端口的规则,改成80,保存后,service iptables start,这个时候访问也是正常的了。

绑定域名

我想通过域名来访问这个站点,比如我访问http://www.qingguow.cn,可以查看到服务器上的站点目录,这个时候就要配置nginx来绑定域名了。进入目录/etc/nginx/conf.d,复制自带的配置文件virtual.conf,改成了www.qingguow.cn.conf,注意后缀一定要是.conf,编辑这个配置文件,重启一下nginx。

server {
    listen       80;
    server_name  www.qingguow.cn;

    location / {
        root   /usr/local/web;
        index  index.html index.htm;
    }
}

我在/usr/local/web目录下新建了个index.html的文件,里面随便写了一句话,修改一下windows的host文件,把域名指向到我的虚拟机ip

192.168.2.100  www.qingguow.cn

此时我直接访问域名就能看到刚才的那个index.html的文件了,浏览器也会提示你这个域名被重定向了

此时我可以去看下nginx的访问和错误日志,默认是/var/log/nginx/access.log,使用tail -f这个命令,可以实时监看这个日志文件

tail -f /var/log/nginx/access.log ,这个可以帮助我知道,此时nginx确实是运行正常的。

安装并配置PHP

我在刚才的目录下新建了个index.php的文件,直接访问这个文件,浏览器会弹出下载框,文件被直接下载了,这个时候就要安装PHP了

yum install php
#查看一下版本
php -v

这个版本还是PHP 5.3已经非常老了,稍后我会去写升级PHP。这个时候PHP已经安装成功了,但是还没有和nginx进行搭配起来,还需要安装php-fpm

yum install php-fpm
#开启php-fpm
service php-fpm start

此时php-fpm已经开启了,并且默认监听9000端口,配置nginx来支持PHP,编辑www.qingguow.cn.conf,改成如下配置文件。配置文件中应该注意这样几点:

1. root指令提到location指令外面来,解决file not found错误

2. fastcgi_pass指令,nginx连接fastcgi

3. fastcgi_param SCRIPT_FILENAME指定这个参数,也是解决file not found错误

4. file not found错误时,nginx的error.log错误日志是FastCGI sent in stderr: "Primary script unknown",搜索这个就能找到解决方法

5. 遇到错误时,一定要看错误日志,然后再去对症搜索。

server {
    listen       80;
    server_name  www.qingguow.cn;
    root   /usr/local/web;
    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php {
        fastcgi_pass   127.0.0.1:9000;#指定FastCGI服务器监听端口与地址
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#指定脚本的路径
        include fastcgi_params;#加载一些参数,这个文件已经存在了
    }
}

新建一个index.php的文件,使用phpinfo()函数打印看看php的参数情况,浏览器中访问,是正常的。

安装mysql数据库

接下来我要再安装上mysql数据库,这个我就能使用PHP去连接和使用mysql数据库了。我要安装mysql和mysql-server一个是客户端,一个服务端,默认安上的mysql数据库,用户名是root,密码是空,这可不怎么安全,当然现在这个数据库只能我们本地去连,无法远程连接,也没啥问题,稍后再去处理增加用户和修密码的问题。

#安装客户端
yum install mysql
#安装服务端
yum install mysql-server
#开启mysql服务
service mysqld start
#连接数据库
mysql -hlocalhost -uroot -p

这个时候,lnmp环境就搭完了。

时间: 2024-12-24 19:20:46

[Linux] PHP程序员玩转Linux系列-lnmp环境的搭建的相关文章

[Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转Linux系列-备份还原MySQL 5.PHP程序员玩转Linux系列-自动备份与SVN 6.PHP程序员玩转Linux系列-Linux和Windows安装nginx 7.PHP程序员玩转Linux系列-nginx初学者引导 8.PHP程序员玩转Linux系列-Nginx中的HTTPS 首先遇到的问题

[Linux] PHP程序员玩转Linux系列-升级PHP到PHP7

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转Linux系列-备份还原MySQL 5.PHP程序员玩转Linux系列-自动备份与SVN 6.PHP程序员玩转Linux系列-Linux和Windows安装nginx 7.PHP程序员玩转Linux系列-nginx初学者引导 8.PHP程序员玩转Linux系列-Nginx中的HTTPS 9.PHP程序

[Linux] PHP程序员玩转Linux系列-翻译nginx官网安装nginx

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转Linux系列-备份还原MySQL 5.PHP程序员玩转Linux系列-自动备份与SVN 如何以最简单的方式安装nginx,我在查找了N多方法只后,发现还是nginx官网的方法最简单啊.在此我也来搬运一下官网的安装方式 在CentOS中安装nginx 当然是以包的安装方式最简单,nginx官网也提供了

[Linux] PHP程序员玩转Linux系列-nginx初学者引导

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转Linux系列-备份还原MySQL 5.PHP程序员玩转Linux系列-自动备份与SVN 6.PHP程序员玩转Linux系列-Linux和Windows安装nginx 翻译自官网文档 nginx有一个master进程和很多个worker进程.master进程的主要目的是读取和执行配置文件,维持work

[Linux] PHP程序员玩转Linux系列-备份还原MySQL

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是gitlab的工程师把数据文件给误删了,搞了个大事件,很多人都去围观了.备份工作应该在最开始的时候就要做,否则就会失去最佳时机,为了保证我的数据是安全的,因此我要搞备份了.备份分为逻辑备份和物理备份,逻辑备份是导sql,物理备份是基于文件的,这两种我都搞一下. 开启binlog 首先第一件事是打开bi

[Linux] PHP程序员玩转Linux系列-怎么安装使用

现在服务器主流都是Linux系统,主流发行版是CentOS,最新的CentOS版本号是7.3,我公司使用的是CentOS6.5,所以,我还是主要去学习6.x版本的CentOS.桌面版的Linux系统中,Ubuntu的使用比较多,我也是安装了最新版的Ubuntu16.10 LTS,在之后的学习和使用中,我主要是说的CentOS6.x和Ubuntu16.10这两个版本. 下载镜像 要学CentOS自然要在安装一下这个系统,我使用VirtualBox虚拟机安装 CentOS系统,同时在一台废弃的笔记本

.Net程序员玩转Android系列之二~Android Framework概要(1)

从windows操作系统说起 人们总是喜欢从将陌生的事物和自己所了解的东西关联起来,以加深对未知事物的了解,这一讲我们从windows操作系统说起,逐步引领带大家走入android的世界.写任何程序都需要知道程序运行的原理和环境,就比如开发winform程序,你至少需要知道操作系统的原理,CLR运行时,了解一些常用的C/C++库.诚然,你不需要全部了解得很清楚也能写出很不错的应用程序,但是你了解的越清楚,钻研得越透彻,那么你越能开发出适合于你所在平台的.更优化的应用程序.譬如在windows操作

.Net程序员玩转Android系列之一~Java快速入门

前段时间受公司业务发展需要,探索性进入Android开发领域.一切从零开始,java基础,Java进阶,Android框架学习,Eclipse熟悉,最终到第一个即时通讯App完成,历经一个月的时间.实现内容包含一个即时通讯服务端,Mysql数据库搭建,Android客户端通讯App.完成之后公司出于战略考虑,暂时放弃了Android.让我觉得,哎,还是不要太相信领导的话为好...>..<...趁着记忆还不算模糊,打算把这段经历和学习过程记录下来,以备日后需要. 只会一门语言的只能称之为技术人员

.Net程序员玩转Android开发---(1)环境搭建

对于没有接触过Android开发的人员来说,可能感觉Android开发比较困难,接下来的一段时间,我们将了解Android开发的具体细节,主要是面对.NET程序员,来看看.NET程序员怎样进行Android开发.  下面我们切入本节正题. 工欲善其事,必先利其器,下面我们准备Android开发的环境搭建,下面是开发的一些工具 1. JDK安装   jdk下载 http://www.oracle.com/technetwork/java/javase/downloads/index.html JD