데이터 베이스 MySQL 튜토리얼 Apache+Nginx+MySql+PHP配置介绍

Apache+Nginx+MySql+PHP配置介绍

Jun 07, 2016 pm 05:46 PM
conf httpd nbsp nginx php

Apache+Nginx+MySql+PHP配置介绍,有需要的朋友可参考一下

Apache+Nginx+MySql+PHP配置介绍,有需要的朋友可参考一下

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里

      Listen 80      修改   httpd-vhost.conf文件格式如下
      # 为虚拟主机在所有 IP 地址上监听 
 

 代码如下 复制代码
NameVirtualHost *:80
     
          ServerAdmin edu1211@163.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:WindowsSystem32driversetchosts 文件 (假设 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 端口一样
      参考文档   http://blog.csdn.net/edisonlg/article/details/7217153
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

其它系统参考 http://wiki.nginx.org/Install
当然也有源码安装但是需要你安装依赖包 ( 有点麻烦)
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源码
下载页面 http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/ ( 这个跟php 版本可以不一至 )
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:9000;
#    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:9000;
        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


#service nginx restart建一个测试页面加上 vim /usr/share/nginx/html/a.php
phpinfo();
?>
执行phpinfo();date 时区不正确 解决方法vim /usr/local/php/etc/php.ini 设置为 date.timezone = Asia/Shanghai
大功告成  参考 http://wenku.baidu.com/view/570b78b765ce050876321377.html
如果要在Nginx 开端口什么的跟 Apache 上一样

 代码如下 复制代码

server {
    listen       80;
    server_name  localhost;
    #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  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ .php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        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 然后修改一下就可以了

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

WordPress 사이트 파일 액세스가 제한됩니다. 도메인 이름을 통해 .txt 파일에 액세스 할 수없는 이유는 무엇입니까? WordPress 사이트 파일 액세스가 제한됩니다. 도메인 이름을 통해 .txt 파일에 액세스 할 수없는 이유는 무엇입니까? Apr 01, 2025 pm 03:00 PM

WordPress 사이트 파일 액세스가 제한됩니다. 최근 .txt 파일에 액세스 할 수없는 이유를 문제 해결하십시오. 미니 프로그램 비즈니스 도메인 이름을 구성 할 때 일부 사용자는 문제가 발생했습니다.

See all articles