热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache/Nginx+MySQL+PHP环境的安装配置

1.装完系统后开启sshd,关闭防火墙(不然外链接是访问不了apache)关闭安全系统SELinux(不然报403访问页面错误)重启后永久性生效chkconfigsshdon(开启sshd)chkconfigiptablesoff(关闭防火墙)修改/etc/selinux/config文件中设置SELINUXdisa

1. 装完系统后开启 sshd, 关闭防火墙 (不然外链接是访问不了 apache) 关闭安全系统 SELinux( 不然报403 访问页面错误 )

   重启后永久性生效

        chkconfig sshd on  ( 开启 sshd)

        chkconfig iptables off ( 关闭防火墙 )

        修改 /etc/selinux/config文件中设置 SELINUX=disabled  ( 关闭SELinux)

   即时生效 , 重启后失效

        #service sshd start  ( 开启 sshd)

        #service iptables stop( 关闭防火墙 )

        #setenforce 0 ( 关闭 SELinux)

2. 默认centos6 装了 mysql+apache 可用rpm -q mysql  httpd 查看是否已经装 默认已安装         

chkconfig设成开机启动 ( chkconfig --list 是列出当前 , 如果 list 里面没有mysqld 和 httpd则用 chkconfig --add mysqld 和httpd)

接着chkconfig httpd on 和 chkconfig mysqld on 这只是要重启后才永久生效   如果即时生效 用 service httpd start  service mysqld start 

3. 修改apache 的配置文件比如更改网站文档目录或不同域名指向不同的文件夹或开端口等等 默认配置文件在 /etc/httpd/conf 文件夹下的 httpd.conf

    1).修改网站文档目录在 httpd.conf 下修改  DocumentRoot "/var/www"   这二要目录一样

    2).不同域名指向不同目录 在httpd.conf 查找 #Inculde /etc/httpd/conf/httpd-vhosts.conf 去掉前面的 #号如果不存在刚加上这一句且创建 httpd-vhosts.conf 文件( 或者直接在 /etc/httpd/conf.d 目录下建一个 httpd-vhosts.conf因为 http.conf 已经#Inculde /etc/httpd/conf.d/*.conf 了 )               

      # 确保 Apache在监听 80 端口 即 httpd.conf文件里要有下面一句话 其实也可以放在httpd-vhosts.conf里

      修改   httpd-vhost.conf文件格式如下

      # 为虚拟主机在所有 IP 地址上监听  

NameVirtualHost *:
      
          ServerAdmin edu1211@.com
          DocumentRoot /var/www/
          ServerName www.example.com
          # 你可以在这里添加其他指令
      
      
         DocumentRoot /var/www/a
         ServerName www.a.com
         # 你可以在这里添加其他指令
         Errorlog "logs/a.log"
         CustomLog "logs/b.log" common
       
上面可以在外部电脑更改 /etc/hosts 文件 如在 windows平台更改 C:\Windows\System32\drivers\etc\hosts 文件 (假设 192.168.0.110 是我们部署的服务器 )
127.0.0.1       localhost
192.168.0.110  www.example.com
192.168.0.110   www.a.com
192.168.0.110   www.b.com

       则在外部电脑输入 www.example.com      则跳到 /var/www/目录

       则在外部电脑输入 www.a.com            则挑到 /var/www/a目录

       则在外部电脑输入 www.b.com            则挑到 /var/www/目录

       为什么输入 www.b.com 会挑到 /var/www/ 目录下 因为服务器在 httpd-vhosts.conf 找不到虚拟主机名刚默认挑到 80 端口的第一个虚拟目录下

   3). 为网站开不同端口 首先在httpd.conf或httpd-vhosts.conf(建议写在这里面)加上要监听的端口

        Listen 8080 // 添加的要开的断口

      然后 httpd-vhost.conf添加格式跟 80 端口一样

4. 安装 php 初始系统是没有安装的 yum install php 即可

php配置文件是 php.ini  可以用find / -name php.ini 一般在 /etc/php.ini这个位置

现在要apache 支持 (绑定 )php 脚本语言

  即修改apache 的配置文件 httpd.conf 在#AddType application/x-tar .tgz 下加上以下二行

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.html.var index.php//即加上访问目录时index.php

其实上面可以改 /etc/httpd/conf.d目录下的 php.conf 就可以了( 建议这样因为 /etc/httpd/conf/httpd.conf已经有 Include conf.d/*.conf)

在php.conf 里面我们都可以看到 Apache 绑定PHP 脚本语言的代码所以上面的 httpd-vhosts.conf 文件可以直接写在 /etc/httpd/conf.d目录下就可以了

  同时修改php 的配置文件 php.ini  打开mysql 扩展 即去掉 ;extension=mysql.so 的分号

   然后重启 apache 即可  service httpd restart

5. 安装 phpMyAdmin  

  1) 到官网下载最新的 phpMyAdmin包

  2) 解压包 tar zxvf phpMyAdmin-2.113-all-languages.tar.gz

  3) mv phpMyAdmin-2.113-all-languages /var/www/phpMyAdmin

  4) phpMyAdmin的配置文件在 /phpMyAdmin/libraies/config.default.php 文件 (如果是以根目录下 config.ini.php 配安装例外 )

  安装完成 即可通过网页登录 但是默认 mysql 是空密码 而 phpMyAdmin禁止空密码登录 则可通过命令行的方式更改 mysql 密码或改phpMyAdmin 的配置文件让允许空密码登录

  打开配置文件找到

$cfg['Servers'][$i]['nopassword'] =false

$cfg['Servers'][$i]['AllowNoPassword'] =false 

把这二行的 false都改成 true 即可

  $cfg['Servers'][$i]['auth_type'] ='COOKIE';

是默认的, 如果更成

$cfg['Servers'][$i]['auth_type']='config';

用config 模式时需要 user,password 参数,这时登录 PhpMyAdmin不需要输入用户名密码,安全性较低,适合多用户测试开发即

$cfg['Servers'][$i]['user']='root';  

$cfg['Servers'][$i]['password']=''; 就生效了 即以种默认身份登录

6. 安装 PHP扩展模块

linux下 PHP 扩展安装模块比如打开 phpMyAdmin的话会提示   没有找到 PHP 扩展 mbstring,而您现在好像在使用多字节字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确分割字符串,可能产生意想不到的结果 .

  则在 php.ini 加上extension=mbstring.so 重启 apache(httpd)还是不行 那么运行find / -name mysql.so 找到存放模块的目录一般是 /usr/lib/php/modules/mysql.so 这个位置则找找 /usr/lib/php/modules/目录下有没有 mbstring.so

  很显示没有 那么得安装 yum install php-mbstring 然后再重启 apache(httpd)刚提示错误没有了

7. 安装 Nginx+PHP(要源码安装 )

  1)安装 Nginx

centos默认是安装了 apache 那么用yum remove httpd 然后再安装 ngnix 因为yum 源是不包含 ngnix

  官网有提供 yum安装说明 :

CentOS:

To add nginx yum repository, create a file named /etc/yum.repos.d/nginx.repo and paste one of the configurations below:

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

当然也有源码安装但是需要你安装依赖包 ( 有点麻烦)

Nginx的配置文件在   /etc/nginx/nginx.conf

但是文件的最后是包含其它文件的    Include /etc/nginx/conf.d/*.conf;

然后   #service nginx start    #chkconfig nginx on

2)安装 PHP

但是安装PHP 的时候如果直接 yum 安装php 是不行的

因为默认情况下 Nginx和 PHP 他俩之间是一点感觉没有的,在之前,很多朋友都搭建过 Apache+PHP ,Apache+PHP 编译后生成的是模块文件,而 Nginx+PHP 需要PHP 生成可执行文件才可以,所以要利用 fastcgi 技术来实现 N ginx与 PHP 的整合,这个只要我们安装是启用 FastCGI 即可。此次我们安装 PHP不仅使用了 FastCGI ,而且还使用了 PHP-FPM这么一个东东, PHP-FPM 说白了是一个管理 FastCGI的一个管理器,它作为 PHP 的插件纯在,在安装 PHP要想使用 PHP-FPM 时就需要把 PHP-FPM以补丁的形式安装到 PHP 中,而且PHP 要与 PHP-FPM版本一致,这是必须的,切记!

所以 PHP得源码安装的时候把 PHP-FRM 选项带上即解压 PHP 源码包后

先安装gcc 套件这是个编译器 yum install gcc   yum install gcc-c++ (libmcrypt要用到 )

./configure --prefix=/usr/local/php --with-gd --enable-mbstring --with-mysql --with-mysqli --with-jpeg-dir --with-zlib --with-openssl --with-mcrypt --enable-fastcgi --enable-fpm

    此过程会出现以下错误

a)  error: xml2-config not found. Please check your libxml2 installation.

因为php5 是需要 libxml2支持   rpm -qa|grep libxml2

只需要安装 libxml2-dev , yum install libxml2-devel  

b)  同样出会出现 openssl 错误那么yum install openssl-devel

c)  configure: error: jpeglib.h not found. 解决方法是: yum install libjpeg-devel

d)  configure: error: png.h not found   解决方法是: yum install libpng-devel

e)  configure: error: mcrypt.h not found. Please reinstall libmcrypt.       

解决方法yum 码安装不了 所以得百度搜 libmcrypt源码

libmcrypt./configure  ( 这里不能 --prefix指定安装路径不然下面安装还是会出错 ) 可能会报check ....no 忽视这些 checking for g77... no  什么fastcgi 警告   但是没出现错误比如 configure: error: No F77 compiler found 就可以了所以

接着#make   #make install

跳到php 目录下继续 ./configure  --prefix=/usr/local/php --with-gd --enable-mbstring --with-mysql --with-mysqli --with-jpeg-dir --with-zlib --with-openssl --with-mcrypt --enable-fastcgi --enable-fpm

安装php 过程会遇到的报错可以参考 http://www.cnblogs.com/1110111abc/articles/2528102.html

接着

#make
#make install
#cp php.ini-production   /usr/local/php/etc/php.ini
#mv /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf  //不然下面启动php-fpm会报错找不到php-fpm.conf文件

下面我们就要启动 PHP-FPM

#/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini //如果不加上-c参数指定他的php.ini参数(必须不然以后没法修改他的php.ini文件)    (lsof -i:9000  可以查看9000端口占用详细情况)  网上说后面加上start是不行的(可能以前版本要吧)

vim /etc/rc.local

在这个文件的最后加入如下语句 :

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini   这里你所要启动的服务一定要写成是绝对路径的形式 !! 不然的话, 这个服务是启动不起来的 !!

最后一步关联 Nginx与 PHP 

#vim /etc/nginx/conf.d/default.conf
#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
#    include        fastcgi_params;
#}
改成
location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
}
 提示:Nginx 自己知道咋找 PHP 了还不行,还需要 PHP知道咋找 Nginx ,这点我们不需要担心, PHP-FPM 已经在配置文件中定义了从哪接受 PHP 请求,我们可以打开配置文件看一下 (Apache 却不同 只要 Apache绑定了 PHP 就行) 

#vi /usr/local/php/etc/php-fpm.conf

如果要把9000 端口改成其它的端口那么二个文件的端口要改成一至

最后重启Nginx 

建一个测试页面加上 vim /usr/share/nginx/html/a.php

phpinfo();

?>

执行phpinfo();date 时区不正确 解决方法vim /usr/local/php/etc/php.ini 设置为 date.timezOne= Asia/Shanghai

如果要在Nginx 开端口什么的跟 Apache 上一样


server {
    listen       ;
    server_name  www.server110.com;
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    #error_page                /.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page        /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:
    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #location ~ /\.ht {
    #    deny  all;
    #}
}
复制一下server 然后修改一下就可以

推荐阅读
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 2023年6月19日:重要日期回顾与展望
    13.1设置更改root密码更改MySQL数据库root密码1.首次进入数据库是不用密码的,如下所示: usrlocalmysqlbinmysql-uroot       使用绝对 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
author-avatar
APP精品限免大全_312
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有