php相册源码_为了私藏点⼩图图,搭个开源相册
背景
CentOS上搭建 meiupic 图床(⼀个PHP写的开源相册),之前也搭建过 PHP 的 LNMP 环境,但是那是很长时间的事了,并且当时使⽤的是 Ubuntu Server 版本服务器。本以为很快就搭建 OK,却还是折腾了⼀晚上,真是惭愧...
⼀、CentOS配置⽹络
本是⼀件多简单的事,不就是在配置⽂件/etc/sysconfig/network-scripts/ifcfg-eth0⾥写⼊下⾯这⼏⾏配置嘛。
DEVICE=eth0BOOTPROTO=staticONBOOT=yesipaddr=192.168.1.123netmask=255.255.255.0gateway=192.168.1.1
可是还真是奇了怪了,⼀重启,IP就⾃动变了,随机分配了。明明配置的是静态IP啊。耗了我⽼长时间原因了,最后照着书上⼀个⼀个校对,最后发现把ipaddr、netmask、gateway都改成⼤写的就⾏了。。(PS. 记得在Ubuntu上没有区分啊,难道我记错了~郁闷)
⼆、Nginx
1、安装
教程很多,贴⼀条备⽤,没准哪天⼜忘了怎么编译安装了。以前在 Ubuntu 上都是直接 sudo apt-get install nginx ,可是在 CentOS ⾥貌似默认没有,学会编译安装 nginx 还有必要的。⽽且编译安装的版本使⽤起来有⼀些差异。
Nginx安装
注意点:
pcre不要选择最新版pcre2,选择pcre2会报错,有能⼒解决者可以⾃⾏选择;
源码全部下载在/usr/local/src/⽬录下,便于管理。
2、使⽤
重新启动service nginx restart?No,No,No,别被⾃动安装的软件惯坏了,nginx应该这么⽤。
/usr/local/nginx/nginx 启动主程序,安装⽬录下运⾏nginx,我的版本是1.7,其他版本nginx执⾏⽂件也许不在nginx⽬录下/usr/local/nginx/nginx -s reload 重新加载
/usr/local/nginx/nginx -s stop 停⽌
当然不想输⼊那么长的路径也⾏,创建⼀个快捷⽅式,如果还是想使⽤service命令也⾏,在/etc/init.d⽬录下创建快捷⽅式。命令如下:cp -s /usr/local/nginx/nginx /etc/init.d/
三、MySQL设置root密码下载mysql为什么下载不了
安装MySQL的⽅法倒是跟之前没两样,偷懒的⽅法就这样yum install -y mysql*,OK,⼀股脑全装上
了,装完设置root密码⽅法如下:
⽅法1: ⽤SET PASSWORD命令
mysql -u rootmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
⽅法2:⽤mysqladmin
mysqladmin -u root password "newpass",如果root已经设置过密码,采⽤如下⽅法:mysqladmin -u root password oldpass "newpass"
⽅法3: ⽤UPDATE直接编辑user表
mysql -u rootmysql> use mysql;mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';mysql> FLUSH PRIVILEGES;在丢失root密码瞅⼀眼密码啥样...
四、php + nginx配置
这次花费最长的时间就是这块了,之前基本没怎么接触过PHP开发,php的开发环境更是半知不解。其实这次搭建完也是半知不解。
想要nginx解析php⽂件,那么需要安装php-fpm,它是个啥?
FastCGI Process Manager:FastCGI进程管理器,fpm能根据访问的压⼒动态的唤起cgi进程和销毁以到达动态的调整cgi数量,这样可以有效的使⽤内存。
跟着 yum install php* 命令,全安装上了。
接下来就是配置 nginx 了,使其能够解析并转发 meiupic 源相册,我将相册源代码解压到了/usr/www/ ⽬录下了,然后就是配置 nginx
了,打开 nginx 配置⽂件,vim /usr/local/f,到 http 下的 server 区域,改成如下:
...此处省略http { .... server{ listen 8080; server_name 192.168.1.123; location / { root /usr/www; index index.php; } location ~ .php$ { root /usr/www; fastcgi_pass 1
listen 端⼝,我将默认的80改成了8080,server_name改成本机的IP,root改成php开源项⽬的源代码⽬录,然后最重要的那段php的配
置当然不是我写的,只是将默认对PHP的配置注释给去掉了,改⼀下root就完事了。
好了,迫不及待的想试⼀试了。依次检查各种服务是否正常,nginx、mysql、启动了的重启⼀下,没有启动的启动⼀下。
service mysqld restart service php-fpm restart /usr/local/nginx/nginx -s reload
1. ⾸先想到的就是⽹络是否通,主机ping 19
2.168.1.123,OK!
2. 然后测试页⾯是否从服务器返回了,很显然在主机上测试是没有返回页⾯,⽽不是返回404。那么测试⼀下在虚拟机中是否返回页⾯
了,没有浏览器怎么玩?没事,curl 192.168.1.123:8080,抓取页⾯代码。返回了。
好了,原因到了,⽹络是通的,⽽页⾯⽆法访问,可是本地可以访问,这么⼀讲,就知道是防⽕墙的问题了。
五、设置防⽕墙
防⽕墙的配置是Linux运维的重点内容,CentOS默认只开通了22端⼝的访问配置。这⾥我们需要开启端⼝8080,亦或是关闭了它(当然不建议这么做)。
教程很多,或是直接看man iptables,你会学到很多。关于防⽕墙的配置⽂件是/etc/sysconfig/iptables,学习就靠⾃⼰了。
关闭的⽅法:service iptables stop。
OK,设置好防⽕墙后,⼜是⼀系列重启服务操作,然后浏览器访问,这次不报错了,可是File Not Find,what's the fuck!
六、fastcgi_params
最后到就是fastcgi_params配置的问题,中间寻答案的艰⾟就不多说了,这⾥记下,给⾃⼰提个醒,同时给新⼈指路。我也是从前⼈那⾥到的答案。
nginx调⽤php-fpm出错解决⽅法和nginx配置详解
问题就在上⾯nginx配置⽂件中的的这两句:
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;include fastcgi_params;
解决⽅法有两种(其实是⼀个意思):
把第⼀句改成如下:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
或者把第⼆句改成如下:
f
为什么说⼀样,可以⾃⾏查看⼀下,nginx 安装⽬录下,fastcgi_param 以及 f 这两个⽂件的内容差异。
vim -O /usr/local/nginx/fastcgi_params /usr/local/f
七、安装 meiupic
完成了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。