标签 lnmp 下的文章
PhpStudy
http://phpstudy.php.cn/
php5.6+Redis+Windows7安装 (phpstudy)
详解PhpStudy集成环境升级MySQL数据库版本
上面的教材安装前
mysql服务是你自己想要升级mysql服务生成的(前提是你按照了百度上所说的在你想要升级的mysql文件中使用了mysql
-install 等命令,在此还要强调一点,在这个之前,你原来的Mysql文件中你还要执行mysqld -remove!有同学会问了,这是为什么?因为啊。phpstudy是一个集成软件,你装好后,apache + mysql + php都是一起装好的,而Mysqla 就是phpstudy帮你注册的服务,所以你要删了。)那说道这边,有些同学会问了,那说了这么久,你还是没说为什么phpstudy会起不来mysqlde
服务。其实说到这边,我已经说的很明确了。mysqla既然是phpstudy帮你注册的服务,那你自己mysqld
-install的注册的服务是mysql。那只要,在服务列表中让phpstudy生成一个mysqla的服务就行了啊!哈哈哈,聪明,那怎么做?emmmmmmm,无法截图。。。我直接说吧,打开phpstudy找到服务管理-->mysql-->安装服务!好了!这时候,就是你的时间了。link
start~
然后安装完后,搜索cmd(因为这样才能以管理员身份运行),
以管理员身份运行,标题显示为“选择管理员:命令提示符”
输入大写D:
进入D盘
C:\WINDOWS\system32>D:
D:\>cd phpStudy/PHPTutorial/MySQL
D:\phpStudy\PHPTutorial\MySQL>cd bin
> mysqld --initialize
> mysqld -install
D:\phpStudy\PHPTutorial\MySQL\bin>mysqld --initialzie
2018-06-10 23:28:58 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-06-10 23:28:58 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2018-06-10 23:28:58 0 [Note] mysqld (mysqld 5.6.40) starting as process 7768 ...
D:\phpStudy\PHPTutorial\MySQL\bin>mysqld --install
Service successfully installed.
D:\phpStudy\PHPTutorial\MySQL\bin>
安装好phpstudy后,升级了MySQL后,通过phpstudy启动,Apache可以启动,Mysql无法启动。
解决方法:
之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQLa服务。
同样以管理员身份运行cmd命令行下输入:sc delete mysql
即可删除。
重启即可。
lnmp一键安装
https://lnmp.org/
https://oneinstack.com/
http://vestacp.com/
https://www.plesk.com/
https://amh.sh/
https://www.bt.cn/
https://linuxeye.com/481.html
使用的是GitHub上的oneinstack,官网,下面是脚本使用介绍
这里简单介绍教程,基于GitHub的README.md,环境是Centos
yum -y install wget screen python unzip git
// for CentOS,其他的是官网看教程
从GitHub中下载最新源码,下面三选一
,我用git,省去解压过程
1.wget下载:wget https://codeload.github.com/oneinstack/oneinstack/zip/master
//改为master.zip
1.1.解压zip 包unzip master.zip
//解压后改oneinstack,原源码脚本是基于oneinstack文件夹的
2.1.wget 下载与上面的解析地址不同wget https://github.com/oneinstack/oneinstack/archive/master.zip
//不用改后缀
2.1.解压zip 包unzip master.zip
//解压后改oneinstack,原源码脚本是基于oneinstack文件夹的
3.git clone 拉下来:git clone https://github.com/oneinstack/oneinstack.git
//直接git吧
cd oneinstack
//在options.conf改变安装目录和数据存储日记等screen -S oneinstack
//防止网络异常,重新连ssh可以screen -r oneinstack继续查看进程screen 状态为Attached 连不上,可以执行screen -D -r oneinstack./install.sh
// 不要直接运行sh install.sh 或者 bash install.sh./addons.sh
//添加附加组件Let’s Encrypt
./vhost.sh
//添加虚拟主机./backup_setup.sh
//Set backup options./backup.sh
//crontab -l &&crontab -e0 1 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 &
//Esc Shift+Q,wq(保存)service nginx restart
更新版本./upgrade.sh
./uninstall.sh
证书过期
更改/data/wwwroot下的网站文件夹名字
备份/usr/local/nginx/conf/vhost下的配置
ssh: ./vhost.sh 选择3. 直到正常
1.正确修改 cgi.fix_pathinfo 与 Nginx 的配置
2.Typecho 中 cgi.fix_pathinfo 与 Nginx 的配置
访问二级菜单出现Access denied.
,
不改变 php.ini
中 cgi.fix_pathinfo=0
改成了 cgi.fix_pathinfo=1
,可能存在安全问题
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
添加 fastcgi_split_path_info ^(.+?.php)(/.*)$;
后即可由 Nginx 设置 PATH_INFO 值,
至此,终于解决了不改 PHP.ini 的方法。
service php-fpm restart
service nginx restart
设置网站目录权限
chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;
fail2ban阻止SSH暴力破解
Nginx Lua Redis防止CC攻击
禁止F5刷新
nginx.conf
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
yuming.conf
location / {
add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
add_header X-XSS-Protection "1; mode=block"; # XSS 保护
#http://www.abc3210.com/2013/web_04/82.shtml
limit_req zone=allips burst=5;
limit_conn addr 5; #连接数限制
#带宽限制,对单个连接限数,如果一个ip两个连接,就是500x2k
limit_rate 500k;
}
rc.local 本身默认没有执行权限
chmod +x /etc/rc.d/rc.local
写一个systemd service,具体怎么写查手册: https://www.freedesktop.org/software/systemd/man/systemd.service.html
iptables
对于Linux服务器防火墙规则iptables修改后无法保存的问题一直没有提到,直接按下面方法做即可:
修改完/etc/sysconfig/iptables文件后直接用service iptables restart命令重启即可保存防火墙规则。
/etc/sysconfig
service iptables save
service iptables restart
lnmp 使用
https://oneinstack.com/install/
搬网站
~/oneinstack/backup.sh 备份
压缩
tar zcvf web.tgz ./ //即可将当前文件夹打包为web.tgz
解压
tar zxvf test.tgz
一键脚本
Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展
Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.0 + Mariadb 10.1.9 + Nginx 1.9.9 + PHP 7.0.2)
环境:
系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡)
系统版本:CentOS-7-x86_64-Minimal-1503-01.iso
ubuntu12.04安装LNMP环境
转载:ubuntu12.04安装LNMP环境
最近玩ubuntu,正好想在上面安装一个lnmp,好来测试博客代码什么的。下面记录下流程。
新建/var/www/目录,当然这个目录由你自己决定放在那里,做了修改之后要记得设置后面的nginx的代码。
sudo mkdir /var/www
sudo chmod -R 777 /var/www
安装nginx
apt-get install nginx-full
所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
程序文件在/usr/sbin/nginx
日志放在了/var/log/nginx中
并已经在/etc/init.d/下创建了启动脚本nginx
默认的虚拟主机的目录设置在了/var/www/nginx-default
修改网站默认目录:
sudo vim /etc/nginx/sites-available/default
用下面的代码替换掉所有代码:
server {
listen [::]:80 default ipv6only=on; ## listen for ipv6
listen 80;
server_name localhost;
root /var/www/; #如果你修改上面的目录,这里做相应修改.
location / {
index index.php index.html index.htm;
}
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;
}
}
修改 /etc/nginx/fastcgi_params,直接在末尾添加以下内容:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
安装php和mysql
sudo apt-get install php5-fpm php5-gd php5-common php5-curl php5-imagick php5-mcrypt php5-memcache php5-mysql php5-cgi php5-cli
安装mysql
sudo apt-get install -y mysql-server mysql-client
注意:在安装过程中会要求创建Mysql 的root用户密码,请务必牢记数据库Mysql的超级密码。
修改php.ini文件:
sudo vim /etc/php5/fpm/php.ini
修改cgi.fix_pathinfo=1 为
cgi.fix_pathinfo=0
新建站点
sudo vim /etc/nginx/conf.d/example.com.conf
内容为
server {
listen 80;
#ipv6
#listen [::]:80 default_server;
root /var/www/example.com.net;
#默认首页文件名
index index.php index.html index.htm;
#绑定域名
server_name example.com;
location / {
try_files $uri $uri/ /index.html;
#伪静态规则
这里填写伪静态规则
}
#定义错误页面
#error_page 404 /404.html;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
重新启动 nginx 和 php-fpm
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm reload
使用phpmyadmin
最后关于mysql管理的问题,直接下载phpmyadmin源码包解压到/var/www/,浏览器打开:http://localhost/phpmyadmin/访问数据库,注意“phpmyadmin”的大小写。用户名和密码就是安装mysql时设置的用户名和密码。