CentOS 7 学习(一) 配置LAMP和Nginx
CentOS是RedHat Linux企业版的代码编译版本,属于比较通用的服务器Linux版本,据说Ubuntu Server更通用,呵呵,不过个人觉得也许CentOS稳定一些,就把公司的服务器架设为CentOS。
参考了http://www.jb51.net/article/26597.htm和http://www.111cn.net/sys/CentOS/63646.htm

1、安装
安装的版本为CentOS 7.0 X64版本,选择最小安装,不过增加了兼容程序和开发工具,因为这些是肯定需要的。
安装网络工具:yum install net-tools,
系统默认是DHCP模式的,公司的DHCP服务器没有每次针对同一台机器分配同一个IP,所以需要手工设定IP,步骤如下
vim /etc/sysconfig/network-scripts/ifcfg-enp1s0
增加和修改如下内容
BOOTPROTO="static" #默认为dhcp,改为static
IPADDR=192.168.1.12 #IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.1.1 #网关
DNS1=8.8.8.8
DNS2=8.8.4.4
重启电脑或者重启网络服务:systemctl restart network

2、配置防火墙(参考了https://fedoraproject.org/wiki/FirewallD/zh-cn和http://www.tuicool.com/articles/vMr6Vj)
系统默认为的防火墙为firewalld防火墙,可以禁用它启用iptables防火墙,不过既然是默认的,就试试看吧
firewalld可以以守护进程的方式运行,这样可以动态配置而不需要重启防火墙,静态配置就必须重启防火墙
其配置工具有图形界面的firewall-config和命令行的firewall-cmd
firewall的管理方式有点类似于Windows防火墙,有一个区域(zone)的概念,不同的区域对应不同的安全级别,可以通过切换区域来修改整体防火墙级别。
基本命令如下
firewall-cmd --get-zones #获得所有的区域级别
firewall-cmd --list-all-zones #获取所有的区域详细信息,结果类似如下
public (default, active)
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
这里显示的是默认的public区域,上面的命令输出很多,我截取了其中一段,可以看出这里支持的服务,默认支持dhcpv6-client和ssh
firewall-cmd --get-default-zone #显示默认区域
firewall-cmd --list-services #显示当前区域支持的服务,即防火墙允许的服务
firewall-cmd --get-services #显示支持的服务
#这里需要增加一些服务和端口
firewall-cmd --add-service=http
firewall-cmd --add-service=mysql
firewall-cmd --add-port=9000/tcp
firewall-cmd --add-port=808/tcp
查看效果
[root@centos-s1 ~]# firewall-cmd --list-services
dhcpv6-client http mysql ssh
[root@centos-s1 ~]# firewall-cmd --list-ports
9000/tcp 808/tcp
后面需要安装mysql,php-fpm,nginx,需要端口3306,9000,808
但这些只是暂时性的,重启防火墙之后就会消失,命令为firewall-cmd --reload,
也可以用命令查看
firewall-cmd --permanent --list-services
firewall-cmd --permanent --list-ports
永久性的需要增加--permanent参数
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=mysql
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=808/tcp
现在重启服务也不会丢失参数
默认区域定义在/etc/firewalld/firewalld.conf中
配置文件保存在/etc/firewalld/zones/public.xml,这代表默认区域是public
3、安装LAMP
1)Apache
sudo yum install httpd
systemctl start httpd.service
systemctl enable httpd.service #设置开机启动
2)安装Mariadb
yum install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
3)安装php
#mysql驱动程序采用php-mysqlnd
yum install graphviz-php php php-bcmath php-cli php-common php-dba php-devel php-embedded php-enchant php-fpm php-gd php-intl php-ldap php-mbstring php-mysqlnd php-odbc php-pdo php-pear.noarch php-pgsql php-process php-pspell php-recode php-snmp php-soap php-xml php-xmlrpc rrdtool-php uuid-php php-pecl-memcache
下载内容有点多,46M
4)重启apache,systemctl restart httpd.service
vim /var/www/html/info.php
<?php
phpinfo();
?>
在浏览器中输入http://localhost/info.php,就可以看到效果了
4、安装phpmyadmin
1)修改mysql的root密码,因为phpmyadmin不允许空密码登录
mysql -uroot #默认情况下root密码为空
MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> select host,user,password from user;
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | root | |
| centos-s1 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| centos-s1 | | |
+-----------+------+----------+
6 rows in set (0.00 sec)

MariaDB [mysql]> update user set password=PASSWORD('stone123') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2)修改Apache,
vim /etc/httpd/conf/httpd.conf
修改为
DirectoryIndex index.html index.php #增加index.php
3)下载phpmyadmin
yum install wget unzip
wget http://nchc.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.2.7/phpMyAdmin-4.2.7-all-languages.zip
unzip phpMyAdmin-4.2.7-all-languages.zip
mv phpMyAdmin-4.2.7-all-languages phpMyAdmin
mkdir /work
cp /root/phpMyAdmin /work/
注意一点,需要将SELINUX关掉,需要重启机器
vim /etc/selinux/config
SELINUX=disabled
修改Apache配置文件
vim /etc/httpd/conf/httpd.conf
Alias /phpmyadmin /work/phpMyAdmin

<Directory "/work/phpMyAdmin">
Options Indexes
AllowOverride All
Require all granted
</Directory>

注意这里的Apache版本为2.4,和2.2有一些不同
http://localhost/phpmyadmin
5、安装Nginx
wget http://nginx.org/download/nginx-1.7.3.tar.gz
tar xvf nginx-1.7.3.tar.gz
./configure
#可能会缺少一些包,需要yum安装,如zlib,yum install zlib-devel
#这个命令会提示Nginx软件的安装位置,默认安装在/usr/local/nginx
启动命令为/usr/local/nginx/sbin/nginx
为方便起见,建立符号链接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
这样就可以直接使用nginx命令启动了,不过nginx的默认启动端口为80,我们已经安装了Apache,需要修改端口
vim /usr/local/nginx/conf/nginx.conf
修改listen 80;为 listen 808;
nginx #启动
没有返回信息,说明启动正常
http://localhost:808 可以看到欢迎页面
配置php支持
修改nginx.conf,去掉注释,如下
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
启动php-cgi程序,php-fpm &
nginx默认住目录为/usr/local/nginx/html,增加info.php文件
<?php
phpinfo();
?>
访问http://localhost:808/info.php

配置Nginx作为Apache的代理,编辑nginx.conf,将下列注释取消
location ~ \.php$ {
proxy_pass http://127.0.0.1;
}
这代表扩展名为php的文件,会代理到本机的80端口
测试文件
vim /var/www/html/test.php
<?php
echo "Hello World!";
?>
浏览器里测试http://localhost:808/test.php
证明代理成功
测试:http://localhost:808/phpmyadmin/index.php
发现可以访问,不过要注意要把fastcgi模式的设置注释掉,否则会出现不正常的现象,很多图片没法访问
不过要注意,如果直接访问http://localhost:808/phpmyadmin,会出现错误,因为没有指定php扩展名,系统无法代理。
至于更详细的代理,明天再研究。

CentOS 7 学习(一) 配置LAMP和Nginx的更多相关文章

  1. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

  2. CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下 文章写的不错,很详细:IDO转载自网络: 准备篇: 1.配置防火墙,开启 ...

  3. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  4. CentOS 6.3安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp -- ...

  5. CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)(转)

    转自:http://www.jb51.net/os/188488.html 作者:佚名 字体:[增加 减小] 来源:osyunwei  准备篇: CentOS 7.0系统安装配置图解教程 http:/ ...

  6. CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法

    CentOS 6.5安装配置LAMP服务器(Apache+PHP5+MySQL)的方法 准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A I ...

  7. CentOS 6.4安装配置LAMP服务器

    CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL) 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+ ...

  8. CentOS 6.7下配置 yum 安装 Nginx

    CentOS 6.7下配置 yum 安装 Nginx. 转载:http://www.linuxidc.com/Linux/2016-07/133283.htm 第一步,在/etc/yum.repos. ...

  9. CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)

    服务器系统环境:CentOS 6.3 客户端系统环境:Windows 7 ultimate(x86)sp1 简体中文旗舰版 ※  本文档描述了如何在Linux服务器配置Apache.Mysql.PHP ...

随机推荐

  1. R语言高性能编程(三)

    一.使用并行计算加倍提升性能1.数据并行 VS 任务并行实现数据并行的算法scoket 并行性注意并行计算时间并不与执行任务的计算资源数目成正比(计算机核心),amdahl定律:并行代码的速度受限于串 ...

  2. [转载] http长连接和短连接

    转载自http://blog.csdn.net/shine0181/article/details/7799754/ HTTP实现长连接 HTTP是无状态的 也就是说,浏览器和服务器每进行一次HTTP ...

  3. update and的坑

    开发那边抛出个有意思的问题,下面的现象如何解释呢? mysql> select * from A; +------+------+ | t1 | t2 | +------+------+ | 1 ...

  4. SQL 数据操作(实验六)

    SQL 数据操作 emp.dept 目标表结构及数据 INSERT 命令的使用与结果验证 2.1把一名新来雇员信息插入到EMP表中:雇员号:1011 姓名: 王晓明 入职日期:今天 ```insert ...

  5. Maven创建父子工程(简单、完整)

    Eclipse创建Maven父子工程(书中有的叫聚合工程,因为看了网上很多教程,实际操作总会有这样那样的小问题,有时候包结构还不对,创建成功后索性就自己写一篇帮助小白,有不对请指教) 1 file-n ...

  6. ionic3中 ion-datetime 全屏可点击问题解决方案

    废话不多说,能进来的都应该知道是个什么情况.我也是在网上找了一段时间,才在git上ionic官方团队的Issues中找到了问题解决方法. 第一,给外围包上一层ion-item,但是这有个问题,就是会让 ...

  7. hibernate第二天

    hibernate的核心思想就是将之前对单个字段的操作变为操作一个对象,使用了ORM(Object relation mapping)对象关系映射的思想 · 在hibernate中对数据库特殊字段的有 ...

  8. Numpy入门 - 生成数组

    今天是Numpy入门系列教程第一讲,首先是安装Numpy: $ pip install numpy numpy是高性能科学计算和数据分析的基础包,本节主要介绍生成连续二维数组.随机二维数组和自定义二维 ...

  9. Docker 使用教程

    概括  Docker与传统虚拟机的区别 与传统虚拟机的区别  Docker的安装 的安装  Docker daemon , client , containerd  镜像与容器操作  容器运 ...

  10. #centos7 创建内网yum源 OpenStack源部署

    #centos7 创建内网yum源#centos7 自动化安装 本地 内网 web源创建.更新 createrepo http OpenStack源部署 Elven原创 http://www.cnbl ...