debiannginxphp
① LAMP环境跟LNMP环境有什么不同,主要用什么地方
LAMP即linux+Apache+Mysql/MariaDB+Perl/php/Python
Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
二者都是web服务器常见的架构,用于提供web服务,不同之处在于LAMP使用的是Apache,而LNMP使用的是nginx
② 如何在Mac下配置Linux并安装Nginx+PHP-Linux
首先是安装Nginx:
apt-get install nginx
运行如下命令可以启动Nginx服务器:
service nginx start
访问一下localhost便会看见 Welcome to nginx! 说明安装成功。
接下来就是安装PHP和PHP-fpm:
apt-get install PHP5 PHP5-fpm
然后,修改Nginx的配置文件:
vi /etc/nginx/sites-available/default
具体的配置内容的意义请查阅官网:Nginx Configuration。
将和PHP相关的内容改成下面这样:
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;
}
然后在根目录下创建index.php里面写上如下内容:
1
2
3
<?php
phpinfo();
?>
再访问本地的地址就可以看到查看PHP属性的页面了。
Other
设置Debian下默认文本编辑器为VIM
1
2
apt-get install vim
update-alternatives --config editor
使用SSH密钥登陆
1.如果电脑没有配置过SSH,输入下面这条命令生成密钥:
ssh-keygen
2.给Mac电脑添加ssh--id命令:
sudo curl
3.将生成的公钥上传到服务器:
ssh--id whyadmin@
③ 在现有的linux tomcat7环境下,怎么增加支持php的网站
正常搭建lamp环境就行了啊,只是web服务器的端口不要和tomcat的一样就行了。先安装和配置好Nginx和PHP-FPM,再把80端口的Tomcat调成8080端口,Ubuntu/Debian可以这样安装Nginx和PHP-FPM: sudo apt-get install nginx php5-fpm php5-mysqlnd php5-gd
假设这个java站的域名是java.net.你现在想添加一个域名php.net也解析到你的这台服务器.这时就建议你引入一个Nginx了,配置2个server{}块,一个域名是java.net,请求proxy_pass给监听8080端口的Tomcat,一个域名设为php.net,请求fastcgi_pass给监听9000端口的PHP-FPM.
Nginx配置示例如下:
server {
listen 80;
server_name java.net;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
server {
listen 80;
server_name php.net;
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
④ php怎么把程序部署到nginx服务器
不建议把php装到tomcat当中,tomcat是java的web服务器,php建议apache或者nginx,移花接木的这种形式不但不会让程序发挥出应有的性能,还会导致很多你意想不到的BUG
⑤ debian nginx php应该放在哪个目录
这个没有规定, 默认安装是在 /usr/bin下面, 这样就不用加入到系统的PATH, LIB
如果是自己编译,一般会是/usr/local/phpxx, 编译完成之后, 设置当前用户或者系统的PATH
⑥ 怎么修改服务器nginx的fpm
Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点,成为小内存VPS建站的首选组合。我们一起来探讨一下nginx+php-fpm高负载的优化方法。
先来看看nginx配置参数的优化。nginx是前端接受浏览器端请求的web server, 配置可调的参数如下:
下面是示例nginx配置
user www-data;
worker_processes 8;
#worker_processes 调至8, 大于8没什么用,小于8,nginx性能发挥不出来
worker_cpu_affinity 01 10 01 10 01 10 01 10;
#worker_cpu_affinity 参数可以使nginx充分发挥多核Cpu的性能优势 ,上面的配置是针对双核CPU的配置。01表示第一个核,10表示第二个核,如果是四核cpu,一至四个核分别表示为 0001 0010 0100 1000
error_log /var/log/nginx/error_log crit;
pid /var/run/nginx.pid;
worker_rlimit_nofile 10240;
#worker_rlimit_nofile 是nginx能打开文件的最大句柄数,我们需要把这个数字设大一点。
#linux系统的文件查看数限制查看是用 ulimit -n ,修改这个限制是用 ulimit -HSn 65535
events
{
use epoll;
#必须要用高效的event驱动,以获得最大性能
worker_connections 10240;
#max_clients = worker_processes * worker_connections/4 (最大连接数的计算公式)
}
http
{
include /etc/nginx/deny.iplist;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_name_in_redirect off;
server_names_hash_bucket_size 128;
server_tokens off;
client_header_buffer_size 32k;
#client头buffer可以调为32K
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfileon;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelayoff;
client_body_timeout 10;
client_header_timeout 10;
send_timeout 60;
output_buffers 1 32k;
postpone_output 1460;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
gzip on;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_proxied expired no-cache no-store private auth;
proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=staticfilecache:80m inactive=1d max_size=2500m;
proxy_temp_path /var/lib/nginx/proxy;
proxy_connect_timeout 300;
proxy_read_timeout 120;
proxy_send_timeout 120;
proxy_buffer_size 16k;
proxy_buffers 4 16k;
upstream wordpressnginx
{
server 127.0.0.1:6000 weight=1 fail_timeout=120s;
}
include /etc/nginx/sites-enabled/*;
}
上面的配置里面,有多处设及到buffer和timeout的地方。我们可以根据需要,慢慢调大这些参数,buffer自然是大点好,但不要太大。16K是标准配置,可以增加到32,往上加更大也不是不行,但 要考虑到你系统内存大不大,够不够用。timeout是超时,如果服务器很繁忙,不妨增加超时等待时间,以避免频繁出现502错误。
gzip是必须开启的,reverse proxy在允许的情况下,也尽量开启,一 是可以提升响应效率,二是降低服务器压力,gzip开启后更可以节省服务器带宽。
nginx主要的配置如上所述。
现在看一下php-fpm的配置。
[global]
pid = run/php5-fpm.pid
process_control_timeout = 5
[www]
listen = /dev/shm/php-cgi.sock
listen.allowed_clients = 127.0.0.1
user = www-data
group = www-data
pm = static
pm.max_children = 7
#这个决定了 php-fpm的总进程。我们要想同时响应更多的并发数,这个数值要尽可能大,比如500,1000
pm.max_requests = 10000
#并发数越大,这个最大请求数应该越大,并发数小,这个数值也应该越小。它表示,php-fpm进程响应了10000个并发请求之后,就自动重启一下进程。
request_terminate_timeout = 30
#表示等待30秒后,结束那些没有自动结束的php脚本,以释放占用的资源。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
小内存的vps虽然经过使用php-fpm+nginx,提升了系统的效率,可以同时响应较多的并发请求,但是当并发数上来了,比如从100上升到10000,小内存肯定响应不过来,cpu也会 因为太忙,而导致系统负载变得很高很高,这个时候,我们就要考虑升级硬件配置了。
内存越大越好,CPU核心频率越高越好,CPU核越多越好。硬盘最好是SSD+RAID10。这样性能不仅高,数据安全也有保障。
上面所提到的各个配置参数,设及到数值的,不妨自己 多试着调小,调大参数,然后重启下nginx或者php-fpm进程,看看效果怎么样。
下面介绍一个比较好的压力测试工具,siege.
debian和ubuntu用户可以通过apt-get install siege来安装siege.
siege是一个跟ab.exe相似的http压力测试软件。
我们可以用siege来测试我们的网站和服务器性能。
siege -r 100 -c 10 http://www.domain.com/test.php
-r 是 repeat , -r 100是重复100次测试
-c 10是表示模拟10个用户同时并发连接
最后面是要测试的URL地址。
测试过程中可以随时按CTRL+C中止进程,siege会生成一个报告给我们。
我们可以同时根据siege的测试结果和监视服务器的负载情况,对系统压力状况进行一个深入了解和分析。接下来可以帮助我们判断该如何进行下一步操作,是继续优化配置,还是升级硬件。
⑦ linux怎么快速安装nginx和php,不用安装数据库
Linux下如果要搭建nginx和php环境,需要安装三个软件包:
nginx,php,php-fpm
比如说如果是centos的话:
yuminstallnginxphpphp-fpm
可能软件包名有差别,这个查查就知道了。
然后配置nginx,修改nginx.conf,如果用sock就这样写,如果是端口就些端口:
location~.php${
fastcgi_passunix:/var/run/php-fpm/php-fpm.sock;
fastcgi_indexindex.php;
includefastcgi.conf;
}
然后启动服务,以centos7为例:
systemctlstartnginx
systemctlstartphp-fpm
⑧ LAMP和LNMP区别是什么
LAMP和LNMP区别:
1、定义不同:
lamp:是Web应用软件组合。
lnmp:指的是一个基于CentOS/Debian编写的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一键安装包。
2、作用不同:
lamp:是Linux(操作系统)、ApacheHTTP 服务器。一般用来建立web应用平台。
lnmp:是用来在Linux系统下Nginx+MySQL+PHP这种网站中搭建服务器架构。
3、用户评价不同:
lamp:LAMP是最强大的网站解决方案。
lnmp:lnmp搭建的Linux系统,是目前最流行的免费操作系统。
4、软件组件不同:
lamp:Linux、Apache、MySQL、PHP,Perl 或 Python。
lnmp:Nginx、MySQL、PHP、PHPMyAdmin、Apache(可选)、Zend Optimizer(可选)、eAccelerator(可选)、ionCube(可选)、Pureftpd(可选)、VsFTPd(可选)。
5、适用环境不同:
lamp:
系统支持:CentOS-5 (32bit/64bit)、CentOS-6 (32bit/64bit)等linux系统
内存要求:≥256M
lnmp:
CentOS 5.8 32Bit / 64Bit
CentOS 6.2 32Bit / 64Bit
CentOS 6.3 32Bit / 64Bit
⑨ Linux系统中设置多版本PHP共存配合Nginx服务器使用
应用环境
LNMP的环境,当前PHP版本5.3.8,遇到一个应用需求只支持PHP
5.2.x,又希望保持现有应用还是用PHP
5.3.8。也就是说需要两个版本的PHP同时存在,供nginx根据需要调用不同版本。
思路
Nginx是通过PHP-FastCGI与PHP交互的。而PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。
既然PHP-FastCGI是监听端口和文件的,那就可以让不同版本的PHP-FastCGI同时运行,监听不同的端口或文件,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,即可实现不同版本PHP共存了。
配置记录
下面记录简单的配置流程,基于已经安装了lnmp的debian环境。当前版本的PHP是5.3.8,位于/usr/local/php。
1.下载PHP-5.2.14及相关的FPM、autoconf组件:
mkdir
~/php5.2
cd
~/php5.2
wget
-c
http://museum.php.net/php5/php-5.2.14.tar.gz
wget
-c
http://php-fpm.org/downloads/php-5.2.14-fpm-0.5.14.diff.gz
2.解压PHP-5.2.14,并打上PHP-FPM的补丁:
tar
zxvf
php-5.2.14.tar.gz
gzip
-cd
php-5.2.14-fpm-0.5.14.diff.gz
|
patch
-d
php-5.2.14
-p1
3.如果你已经通过lnmp安装,应该已经安装好了autoconf,如果没有,请自行下载并编译autoconf-2.13,然后设置autoconf环境变量:
export
PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf¬
export
PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader
3.编译安装PHP-5.2.14在新的路径(/usr/local/php-5.2.14)下,注意–prefix、–with-config-file-path的路径,并且打开fastcgi和fpm选项:
cd
php-5.2.14/
./buildconf
--force
./configure
--prefix=/usr/local/php-5.2.14
--with-config-file-path=/usr/local/php-5.2.14/etc
--with-mysql=/usr/local/mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config
--enable-fastcgi
--enable-fpm
make
ZEND_EXTRA_LIBS='-liconv'
make
install
4.设置/usr/local/php-5.2.14/etc/php-fpm.conf,监听端口:
<value
name="listen_address">127.0.0.1:9001</value>
或者监听文件:
<value
name="listen_address">/path/to/unix/socket</value>
其他参数根据服务器环境和需求自行定制。
5.启动php-fpm,以后可以通过php-fpm进行管理:
/usr/local/php-5.2.14/sbin/php-fpm
start
字php5.3.3后,php已经将php-fpm继承到php中,而且内置的php-fpm默认不支持(start|stop|reload)的平滑启动参数,需要使用官方源代码中提供的启动脚本来控制:
cp
-f
(php
-5.3.x-source-dir)/sapi/fpm/init.d.php-fpm
/etc/init.d/php-fpm
chmod
755
/etc/init.d/php-fpm
/etc/init.d/php-fpm
start
php-fpm支持的操作:
start,启动PHP的FastCGI进程。
stop,强制终止PHP的FastCGI进程。
quit,平滑终止PHP的FastCGI进程。
restart,
重启PHP的FastCGI进程。
reload,
重新加载PHP的php.ini。
logrotate,
重新启用log文件。
5.3.3的php-fpm脚本支持的操作:start|stop|force-quit|restart|reload|status
6.配置好PHP-5.2.14的php.ini,重新加载生效:
vi
/usr/local/php-5.2.14/etc/php.ini
/usr/local/php-5.2.14/sbin/php-fpm
reload
7.修改nginx配置,对需要的服务配置使用PHP-5.2.14:
location
~
.*.(php|php5)?$
{
fastcgi_pass
127.0.0.1:9001;
fastcgi_index
index.php;
include
fcgi.conf;
}
8.记录一下自己编译php5.5.10使用的配置
./configure
--prefix=/usr/local/php-5.5.10
--with-config-file-path=/usr/local/php-5.5.10/etc
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-bz2
--with-curl=/usr/bin
--enable-ftp
--enable-sockets
--disable-ipv6
--with-gd
--with-jpeg-dir=/usr/local
--with-png-dir=/usr/local
--with-freetype-dir=/usr/local
--enable-gd-native-ttf
--with-iconv-dir=/usr/local
--enable-mbstring
--enable-calendar
--with-gettext
--with-libxml-dir=/usr/local
--with-zlib
--with-pdo-mysql=mysqlnd
--enable-dom
--enable-xml
--enable-fpm
--with-libdir=lib64
--with-mcrypt=/usr/bin
--enable-zip
--enable-soap
--enable-mbstring
--with-gd
--with-openssl
--enable-pcntl
--with-xmlrpc
--enable-opcache
⑩ LNMP怎么单独重启nginx或者mysql、php
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
单独重启nginx或者mysql、php:
nginx : kill nginx进程ID,再/usr/local/nginx/sbin/nginx
mysql :/etc/init.d/mysql restartphp:没有重启
phpfpm:/usr/local/php/sbin/php-fpm reload