在linux 上建立php服务器

最近闲的折腾,打算搞搞私有云。于是打算从自己的小站开始折腾,正好最近也有JavaWeb课程的课程设计。所以也就一并折腾了。但是这篇文章是在三级项目结题之后完成的。

首先说明一下我的平台:Archlinux 4.11.3-1-Arch,算是比较新的。

搭建网页服务器的总体构想是,利用nginx(可以读作engine x)作为网关,然后转发到php-fpm上,实现php网站服务器。下面是Nginx介绍

Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。
起初是供俄国大型的门户网站及搜索引擎Rambler(俄语:Рамблер)使用。此软件BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。

在php端,用php-fpm来完成。关于php-fpm的简介如下:

FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。

它的功能包括:

支持平滑停止/启动的高级进程管理功能;

可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的设置);

stdout 和 stderr 日志记录;

在发生意外情况的时候能够重新启动并缓存被破坏的 opcode;

文件上传优化支持;

“慢日志” – 记录脚本(不仅记录文件名,还记录 PHP backtrace 信息,可以使用 ptrace或者类似工具读取和分析远程进程的运行数据)运行所导致的异常缓慢;

fastcgi_finish_request() – 特殊功能:用于在请求完成和刷新数据后,继续在后台执行耗时的工作(录入视频转换、统计处理等);

动态/静态子进程产生;

基本 SAPI 运行状态信息(类似Apache的 mod_status);

基于 php.ini 的配置文件。

在Archlinux上面安装以上两个软件是很简单的

$ sudo pacman -S nginx fcgi php-fpm

安装完毕之后就可以对他们两个进行配置了。首先配置nginx,默认的配置文件位于/etc/nginx目录下,名为“nginx.conf“。打开之,首先找到 user html,取消注释,并将html改为http

user http;

实际上上面这一步并不是必须的,然而处于强迫症和优雅综合征,我还是改了。然后可以设置一下worker_process和worker_cpu_affinity,这两个都设置为auto即可。如果你想方便debug,可以开启日志,然后选择你的日志地点即可。

最重要的一步是配置我们的服务器以及网页的根目录,我们找到http字段,确保这个字段中有如下内容:

include mime.types;

default_type application/octet-stream;

sendfile on;

tcp_nopush on;

至于log和keepalive_timeout两个选项,如果有需要,请自行打开即可。

然后是这里面的server字段,listen表示侦听端口,默认的话我们使用80端口,然后是servername,这个我们使用localhost,注意在这里我们需要加入root字段,也就是我们网页的根目录假设我们的目录为/srv/http,那么我们需要在server字段中添加

root /srv/http/;

由于我们需要建立php服务器,所以我们在下面找到

location ~ \.php$ {

这个字段表示php配置,由于我们已经配置了root,在同一个server中,里面所有的location都会

继承我们配置的root,所以这里就不要在配置root,将其注释掉即可。但是我们需要添加fastcgi_pass字段:

fastcgi_pass unix:/run/php-fpm/php-fpm/sock;

fastcgi_index <你的index文件>

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

include fastcgi.conf;

保存退出即可。

解释一下上面的内容,首先我们在nginx.conf中配置了nginx的基本工作方式,worker以及log等,然后在http字段中配置了我们的服务器(如果有多个Server字段,也就意味着多个服务器,用这种方式我们可以实现虚拟主机,在tomcat中的host的作用和这里的Server差不多),在服务器字段中我们配置了我们的根目录,也可以在这里配置错误页面。然后最后我们在这里面配置了我们的php信息,添加了fastcgi的配置,使fastcgi能够找到php-fpm,并利用其完成php页面的解析。


然后说说php的配置,php的默认配置文件在/etc/php目录中,配置文件为php.ini

我们需要做的仅仅是找到open_basedir,然后在后面添加上我们的网站根目录即可。


最后保存退出,为了能够验证效果,我们可以在我们的根目录创建一个index.php的测试页面,这个页面中我们输出phpinfo

<?php phpinfo(); ?>

然后先后启动php-fpm和nginx

sudo systemctl enable php-fpm nginx

sudo systemctl start php-fpm nginx

然后通过浏览器进入我们刚刚产生的那个页面,就可以看到效果了

补充脱了很长时间的QQ

首先向大家抱歉,之前说好的更新QQ,结果很长时间了,都没见动静。

这一段时间打在好好学习,电脑碰的少了,自然就忘了更新……还望见谅。

废话少说,下面是在Arch Linux上面运行QQ的方法。

首先你要有一个Wine,安装好wine,下面是我的安装了的Wine组件

实际上只需要安装上面已安装的东西就行。

然后从官网下载轻聊版(貌似国际版更好,不推荐普通版,首先是太庞大,其次安装的时候也

容易出错。但是我没试过国际版……)。然后运行安装包进行安装即可。这时候,它会安装到你的

Wine设置的C盘目录(这个东西你可以打开Wine的设置来搞,最好在设置的时候把字体什么的也一

并设置好,字体推荐使用微软雅黑,从随便一个Win7以上的电脑拷一个就行)。

安装完毕之后,你就可以在安装目录中的Bin文件夹中找到QQ.exe,运行之即可。

然而,你会发现,你在登录页面,看不到你输入的账号,这个没什么关系,你只需要一个一个输进去就行,可以勾上自动登录之类的(省的下次再这样)。然后一切都和Windows一样了。

不过,我发现,我的聊天界面,是不显示聊天记录的……就像下面

聊天框

实际上我框里面是应该有消息的……不过点一下消息记录还是可以看到消息的,虽然有点麻烦,但是保密性好不是?

然后下面是一些其他的截图。

能显示弹窗

还有主界面

不过右下角的企鹅图标,要双击才能弹出原来的框……

 

雨后小感

喜欢下雨,整个世界都像被刷洗过一样。
更喜欢下完雨的傍晚,天上是灰的,人间确是亮的。仿佛天地倒置一般。
抬起头,你就会感觉到,还是人间更靓丽。
顿时一切烦恼焦躁和不安,都变成了对天的嘲讽:你多灰暗,多消沉。
但是低下头,又看到水洼里面的自己。
你可以感觉到空气的存在,它是清新的,带着淡淡的臭氧的味道,与一点点泥土的腥。
深吸一口,你会忘了什么是雾霾,也会忘了混乱与无助。深吸一口,
你会发现,从头到脚都是透彻的,明快的,
所有的套路狡诈与心机都被空气带走,剩下一个纯净的自我。
树叶蒙着的灰也被冲走了,洗漱了一番,舒一舒筋骨,明天继续光合。
我大概也应该放下一些灰尘,就像树叶那样。总不能一直蒙着灰尘,多沉,多累,是时候放下了。
喜欢下午,感觉我和世界都被刷新了一样。