debian 下安装切换apache到nginx,php5
1: 前言 以前debian作开发机server是apache,工作需要切换到nginx,有时候两个都要使用。作个简单的笔记。注意,本文仅仅是在debian 7(wheezy) 上。其它OS有其它OS的配置和安装,不能保证一致性。apache的安装配置就参考前面发的文章了。 2: 安装 nginx ph
1:前言
以前debian作开发机server是apache,工作需要切换到nginx,有时候两个都要使用。作个简单的笔记。注意,本文仅仅是在debian 7(wheezy) 上。其它OS有其它OS的配置和安装,不能保证一致性。apache的安装配置就参考前面发的文章了。
2:安装 nginx php5-cgi php5-fpm spawn-fcgi
#apt-get install nginx nginx-full nginx-common php5-cgi php5-fpm spawn-fcgi
3:配置各个的php.ini
可以#cd /etc/php5 里面看见,
有
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini 分别对应不同的php.ini 配置
#vim /etc/php5/cgi/php.ini 去掉cgi.fix-pathinfo=1 的注释
4:配置nginx.conf
在/etc/nginx/nginx.conf
把下面的复制进去, 或者你可以对比下修改
user www-data; worker_processes 12; pid /var/run/nginx.pid; worker_rlimit_nofile 51200; events { worker_connections 30760; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 60; types_hash_max_size 2048; client_max_body_size 80m; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_vary on; gzip_min_length 1k; # gzip_proxied any; gzip_comp_level 2; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # Uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:110; # protocol pop3; # proxy on; # } # # server { # listen localhost:143; # protocol imap; # proxy on; # } #}
5: 配置default
在/etc/nginx/sites-available/default, 注意,下面我的配置文件写了两个 注释掉了 php5-cgi 的, 打开了php5-fpm的。 我这里用的是php5-fpm
如果你需要用spawn-fcgi,就需要php5-cgi 加########的那段。/home/www 是我的www目录。你可以对着改成你的www目录。root /home/www 这里也是。 我打开了自动索引,autoindex这个。
# You may add here your # server { # ... # } # statements for each of your virtual hosts to this file ## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ## log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /home/www; index index.html index.htm index.php; # Make site accessible from http://localhost/ server_name localhost; charset utf-8; #server_name _test1.com _test2.com _test3.com #error_page 400 /errpage/400.html; #error_page 403 /errpage/403.html; #error_page 404 /errpage/404.html; location ~ .*\.(git|jpg|jpeg|png|bmp|swf)$ { expires 1d; } location ~ .*\.(js|css)?$ { expires 1h; } location / { autoindex on; autoindex_exact_size on; autoindex_localtime on; # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; allow ::1; deny all; } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} #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/www; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #} location ~ \.php$ { #######with php5-cgi#################### #fastcgi_pass 127.0.0.1:9000; ######################################## #######with php5-fpm#################### fastcgi_pass unix:/var/run/php5-fpm.sock; ######################################## fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name; include fastcgi_params; } access_log /var/log/nginx/access.log access; # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # root html; # index index.html index.htm; # # location / { # try_files $uri $uri/ =404; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # # root html; # index index.html index.htm; # # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # # ssl_session_timeout 5m; # # ssl_protocols SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; # ssl_prefer_server_ciphers on; # # location / { # try_files $uri $uri/ =404; # } #}
6:启动
启动模式有几种,可以是spawn-fcgi 或者是php5-fpm 或者还是apache
如果是自启动php-fpm ,
可以通过sysv-rc-conf 工具查看是否在开机启动里面 (#apt-get install sysv-rc-conf), 默认是在的
关掉spawn-fcgi 或者php5-fpm
spawn-fcgi
#netstat -anp | grep 9000
#killall -HUP php5-cgi
php5-fpm
#/etc/init.d/php5-fpm stop
如果想要spawn-fcgi 支持/etc/init.d/
开机自启动spawn-fcgi 模式
#vim /etc/rc.local 增加
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid -C 4
参数根据你机器性能来,我这里是测试机。
创建系统启动停止命令
#cd /etc/init.d/
#touch fastcgi
把下面的文件保存到刚才创建的fastcgi, 就可以支持 /etc/init.d/fastcgi start|stop|reload 等操作了
#!/bin/bash # DESC: NGINX php5 FastCGI(spawn-fcgi) init shell script PROVIDES=php5-cgi LIGHTTPD_FCGI=/usr/bin/spawn-fcgi SERVER_IP=127.0.0.1 SERVER_PORT=9000 SERVER_USER=www-data SERVER_GROUP=www-data PHP_CGI=/usr/bin/php5-cgi KILLALL=/usr/bin/killall . /lib/lsb/init-functions cmd=$1 pcgi_start(){ echo "Starting $PROVIDES..." $LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI -C 15 -P /var/run/fastcgi-php.pid echo "Done." } pcgi_stop(){ echo "Killing $PROVIDES..." $KILLALL $PROVIDES echo "Done." } pcgi_restart(){ pcgi_stop pcgi_start } pcgi_status(){ status_of_proc -p /var/run/fastcgi-php.pid "/usr/bin/php5-cgi" php5-cgi && exit 0 || exit $? } pcgi_help(){ echo "Usage: $0 {start|stop|restart|status}" } case ${cmd} in [Ss][Tt][Aa][Rr][Tt]) pcgi_start;; [Ss][Tt][Oo][Pp]) pcgi_stop;; [Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;; [Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status ;; *) pcgi_help ;; esac

如果要停止php5-fpm切换到spawn-fcgi
#/etc/init.d/php5-fpm stop
编辑/etc/nginx/sites-available/default 把php5-fpm
#fastcgi_pass unix:/var/run/php5-fpm.sock;
注释掉,打开php5-fcgi 那个
fastcgi_pass 127.0.0.1:9000;
保存
重启nginx 配置
#/etc/init.d/nginx reload
查看phpinfo
如果要停止掉php5-fpm 类似,如果要关掉nginx启用apache更简单了
#/etc/init.d/nginx stop
#/etc/init.d/apache2 restart
7: 如果需要配置多个不同的项目,可以在/etc/nginx/nginx.conf 里面的
include /etc/nginx/sites-enabled/*; 这里改成其他的子配置文件,到时根据需求方便切换。然后/etc/init.d/nginx reload 就可以了
8: 如果想要apache和nginx都同时可以工作, 这里我们让nginx走80端口, apache走8080, 修改/etc/apache/ports.conf文件, 改80为8080, 同理还要修改/etc/apache/site-available/里面的虚拟主机的端口为8080
NameVirtualHost *:8080
Listen 8080
重启apache即可通过xxx.xxx.xxx.xxx:8080来访问了
9: 如果nginx 和php5-fpm 搭配的时候访问php页面报502, 检查/etc/php5/fpm/pool.d/www.conf 里面的配置,
比如, 因为我的www目录授权是给的tom, 所以这里要修改. 保存后重启fpm和nginx即可.
listen.owner = tom
listen.group = tom
listen = /var/run/php5-fpm.sock;
listen.allowed_clients = 127.0.0.1
10: 如果要关掉nginx和php的版本号显示, 防止别人来嗅探对应的版本的漏洞.
nginx在http那段, 把 server_tokens off; 开启
并且把对应的/etc/nginx/fastcgi_params 删除掉$nginx_version
fastcgi_param SERVER_SOFTWARE nginx;
然后去关掉所有的php的版本, 找到php.ini(cgi的,fpm的,cli的,apache的 一共有四份不同的php.ini对应不同的)
把下面的on关闭为off 重启对应的fpm/cgi/apache 和nginx服务器就可以了.
expose_php = Off
curl --head http://127.0.0.1/info.php
会看不到nginx和php的版本信息了.

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











동시성 테스트 및 디버깅 Java 동시 프로그래밍의 동시성 테스트 및 디버깅은 매우 중요하며 다음 기술을 사용할 수 있습니다. 동시성 테스트: 단위 테스트: 단일 동시 작업을 격리하고 테스트합니다. 통합 테스트: 여러 동시 작업 간의 상호 작용을 테스트합니다. 부하 테스트: 부하가 심한 상황에서 애플리케이션의 성능과 확장성을 평가합니다. 동시성 디버깅: 중단점: 스레드 실행을 일시 중지하고 변수를 검사하거나 코드를 실행합니다. 로깅: 스레드 이벤트 및 상태를 기록합니다. 스택 추적: 예외의 원인을 식별합니다. 시각화 도구: 스레드 활동 및 리소스 사용량을 모니터링합니다.

1. 58초상화 플랫폼 구축 배경 먼저, 58초상화 플랫폼 구축 배경에 대해 말씀드리겠습니다. 1. 기존 프로파일링 플랫폼의 전통적인 사고로는 더 이상 충분하지 않습니다. 사용자 프로파일링 플랫폼을 구축하려면 여러 비즈니스 라인의 데이터를 통합하여 정확한 사용자 초상화를 구축하는 데이터 웨어하우스 모델링 기능이 필요합니다. 그리고 알고리즘 측면의 기능을 제공해야 하며, 마지막으로 사용자 프로필 데이터를 효율적으로 저장, 쿼리 및 공유하고 프로필 서비스를 제공할 수 있는 데이터 플랫폼 기능도 있어야 합니다. 자체 구축한 비즈니스 프로파일링 플랫폼과 중간 사무실 프로파일링 플랫폼의 주요 차이점은 자체 구축한 프로파일링 플랫폼이 단일 비즈니스 라인에 서비스를 제공하고 필요에 따라 사용자 정의할 수 있다는 것입니다. 모델링하고 보다 일반적인 기능을 제공합니다. 2.58 Zhongtai 초상화 구성 배경의 사용자 초상화

Java 네트워크 프로그래밍에 일반적으로 사용되는 프로토콜 및 라이브러리: 프로토콜: TCP, UDP, HTTP, HTTPS, FTP 라이브러리: java.net, java.nio, ApacheHttpClient, Netty, OkHttp

클라우드 컴퓨팅에서는 방대한 양의 데이터를 관리하고 처리하기 위해 데이터 구조와 알고리즘을 사용하는 것이 중요합니다. 일반적인 데이터 구조에는 배열, 목록, 해시 테이블, 트리 및 그래프가 포함됩니다. 일반적으로 사용되는 알고리즘에는 정렬 알고리즘, 검색 알고리즘 및 그래프 알고리즘이 포함됩니다. 개발자는 Java의 강력한 기능을 활용하여 Java 컬렉션, 스레드로부터 안전한 데이터 구조 및 Apache Commons 컬렉션을 사용하여 이러한 데이터 구조와 알고리즘을 구현할 수 있습니다.

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

PHP 마이크로서비스의 컨테이너화된 배포에 대한 전체 가이드 소개 마이크로서비스 아키텍처는 애플리케이션을 독립적이고 느슨하게 결합된 서비스로 분해하는 현대 소프트웨어 개발에서 뜨거운 추세가 되었습니다. 컨테이너화는 이러한 마이크로서비스를 배포하고 관리하는 효과적인 방법을 제공합니다. 이 문서에서는 PHPDocker를 사용하여 마이크로서비스를 컨테이너화하고 배포하는 데 도움이 되는 단계별 가이드를 제공합니다. Docker 기본 사항 Docker는 애플리케이션과 해당 종속 항목을 모두 휴대용 컨테이너에 패키징하는 경량 컨테이너화 플랫폼입니다. 다음 단계에서는 Docker 사용 방법을 설명합니다. #Install Dockersudoapt-getupdatesudoapt-getinstalldock

같은 시스템에서 여러 PHP 버전을 동시에 실행하는 것은 특히 다른 프로젝트가 다른 버전의 PHP에 의존 할 때 일반적인 요구 사항입니다. 똑같은 방법 ...

많은 웹 사이트 개발자는 램프 아키텍처에서 Node.js 또는 Python 서비스를 통합하는 문제에 직면 해 있습니다. 기존 램프 (Linux Apache MySQL PHP) 아키텍처 웹 사이트 요구 사항 ...
