PHP服务器配置 lnmp laravel https 免费Let’s Encrypt证书(后续)

 

一,安装虚拟主机:

0, 查找文件: whereis xxx 或者 find / -name xxx

1,https://oneinstack.com/install/ #lnmp一键安装地址(还有其他...)

 如何添加虚拟主机?

 ./vhost.sh 

2,添加 免费Let’s Encrypt证书(有效期 90 天) ssl证书,用于配置https

2-1,按照 ./vhost.sh 安装,出现的错误:s

Let's Encrypt Verify error! DNS problem: NXDOMAIN looking up A for xxx(域名).

2-2,安装nscd,如果系统没装可以装一下,nscd做DNS缓存加速很有用。

centos : yum install nscd

如果已经装了直接更新

 # 主要是hosts

 $ nscd -i passwd

 $ nscd -i group

 $ nscd -i hosts

 # 添加WWW站点

 如果上述两者都不是,则就是WWW的问题。可直接添加站点的时候就仅仅添加WWW域名,
 且可以安装Let’s Encrypt证书的,然后安装完毕之后通过修改conf配置文件,
 将不带WWW域名手工添加进来,且设置301强制跳转,问题解决

 vi /usr/local/nginx/conf/vhost/www.xxx.com.conf
 server_name www.xxx.com  xxx.com ;

2-3,如何设置301跳转将不带www域名跳转到www域名

 .htaccess 规则文件

 前提要你虚拟主机支持伪静态组件使用VPS主机就要安装一下Rewrite
 把规则放到你网站根目录

 [ISAPI_Rewrite]
 # 3600 = 1 hour
 CacheClockRate 3600
 RepeatLimit 32
 RewriteCond %{HTTP:Host} ^xxx.com$
 RewriteRule (.*) http://www.xxx.com$1 [NC,R=301]
 XX代表你域名

二,Linux安装 Composer

1,安装composer (全局安装,建议)

1-1,局部安装

 局部安装是将 composer 安装到当前目录下面(比如安装到项目根目录下),
 然后就可以通过 php composer.phar 来使用 composer 了。

 Linux系统:curl -sS http://install.phpcomposer.com/installer | php 

 或者:

 php -r "readfile('http://install.phpcomposer.com/installer');" | php 

1-2,全局安装

1-2-1,下载composer,国外(国内下载速度慢)

 curl -sS https://getcomposer.org/installer | php

1-2-2,将composer.phar文件移动到bin目录以便全局使用composer命令

cp composer.phar /usr/local/bin/composer

运行

php composer.phar -v (局部) 或 composer -v (全局)

1-2-3,切换国内源

composer config -g repo.packagist composer https://packagist.phpcomposer.com

1-3,composer update 报错 还有 laravel : composer install

1,从报错可以看出是有些功能被禁用(或没有安装)。

  # find / -name php.ini

  # vi /usr/local/php/etc/php.ini

&2,打开php.ini,并[/disable_functions]搜索disable_functions指令,找到类似如下内容:
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

3,找到proc_open和proc_get_status 并删除即可。

&1-4,laravel配置:

cp .env.example .env

composer  install

php artisan key:generate

cd oneinstack

./addons.sh   #  安装 fileinfo,laravel项目配置需要

&1-5,OneinStack如何设置网站根目录权限?

chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;

2,laravel框架 conf配置:

2-1,如何设置301跳转将不带www域名跳转到www域名

 .htaccess 规则文件

 前提要你虚拟主机支持伪静态组件使用VPS主机就要安装一下Rewrite
 把规则放到你网站根目录

 [ISAPI_Rewrite]
 # 3600 = 1 hour
 CacheClockRate 3600
 RepeatLimit 32
 RewriteCond %{HTTP:Host} ^xxx.com$
 RewriteRule (.*) http://www.xxx.com$1 [NC,R=301]
 XX代表你域名

2-2,查看自己是否安装Rewrite:

vi /usr/local/nginx/conf/rewrite/wordpress.conf  #oneinstack默认推荐的安装

2-3,修改 301跳转将不带www域名跳转到www域名(配置oneinstack官网后的生成,就没有这个问题)

cd /usr/local/nginx/conf/vhost/
vi www.xxx.com.conf

或者

vi /usr/local/nginx/conf/vhost/www.xxx.com.conf

2-3-1,配置oneinstack官网后的生成 .conf 文件 ,xxx(域名):

server {
   listen 80;
   listen 443 ssl http2;
   ssl_certificate /usr/local/nginx/conf/ssl/www.xxx.com.crt;
   ssl_certificate_key /usr/local/nginx/conf/ssl/www.xxx.com.key;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
   ssl_prefer_server_ciphers on;
   ssl_session_timeout 10m;
   ssl_session_cache builtin:1000 shared:SSL:10m;
   ssl_buffer_size 1400;
   add_header Strict-Transport-Security max-age=15768000;
   ssl_stapling on;
   ssl_stapling_verify on;
   server_name www.xxx.com  xxx.com ;
   access_log /data/wwwlogs/www.xxx.com_nginx.log combined;
   index index.html index.htm index.php;
   root /data/wwwroot/www.xxx.com;

   include /usr/local/nginx/conf/rewrite/wordpress.conf;
   #error_page 404 /404.html;
   #error_page 502 /502.html;    
 }

2-3-2,【 网上 】 修改 301跳转将不带www域名跳转到www域名:

  server {
      listen 80;
      server_name linuxidc.com www.linuxidc.com;
      return 301 https://www.linuxidc.com$request_uri;  #301域名解析
  }
  server {
      listen 443 ssl;
      ssl_certificate /linuxidc.com/cert.pem;
      ssl_certificate_key /linuxidc.com/privkey.pem;
      server_name linuxidc.com;
      return 301 https://www.linuxidc.com$request_uri;
  }
  server {
      listen 443 ssl;
      ssl_certificate /www.linuxidc.com/cert.pem;
      ssl_certificate_key /www.linuxidc.com/privkey.pem;
      server_name  www.linuxidc.com;
  }

&2-4,重启服务(oneinstack官网提供):

Nginx/Tengine/OpenResty:

service nginx {start|stop|status|restart|reload|configtest}

MySQL/MariaDB/Percona:

service mysqld {start|stop|restart|reload|status}

PostgreSQL:

service postgresql {start|stop|restart|status}

MongoDB:

service mongod {start|stop|status|restart|reload}

PHP:

service php-fpm {start|stop|restart|reload|status}

HHVM:

service supervisord {start|stop|status|restart|reload}

注:hhvm进程交给supervisord管理,了解更多请访问《Supervisor管理hhvm进程》

Apache:

service httpd {start|restart|stop}

Tomcat:

service tomcat {start|stop|status|restart}

Pure-Ftpd:

service pureftpd {start|stop|restart|status}

Redis:

service redis-server {start|stop|status|restart}

Memcached:

service memcached {start|stop|status|restart|reload}

二, 修改laravel项目的路径,vi www.xxx.com.conf

cd /usr/local/nginx/conf/vhost/

vi www.xxx.com.conf

  root /data/wwwroot/www.xxx.com/;

改为:

  root /data/wwwroot/www.xxx.com/your-project/public; # public,laravel入口

----------------------------------------------#301问题另一种方式

  server_name www.xxx.com;

改为:

  server_name www.xxx.com  xxx.com ;

最后 :wq #保存www.xxx.com.conf

重启 nginx服务:

 service nginx start

在浏览器中输入地址即可 www.xxx.com

三,Linux 安装 node.js 与 npm (我的laravel项目需要,可以不配置)

1,我将在 oneinstack 中的 cd /data/wwwroot/www.xxx.com/your-project/中使用

2,nodejs地址:一般npm也集成在 node.js中

   http://nodejs.cn/download/

3,简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以将这个设置为全局就好了

4,设置 node 与 npm 为全局的

 wget https://npm.taobao.org/mirrors/node/v10.8.0/node-v10.8.0-linux-x64.tar.gz

 tar -zxvf node-v10.8.0-linux-x64.tar.gz 

 cd node-v10.8.0-linux-x64

 pwd  #查看当前的目录(绝对路径)

 ln -s /root/node-v10.8.0-linux-x64/bin/node /usr/local/bin/node   #全局

   ln -s /root/node-v10.8.0-linux-x64/bin/npm /usr/local/bin/npm #全局

5,具体使用:以oneinstack为例

  cd /data/wwwroot/www.xxx,com/your-project

  npm install

四,Git 从服务器取得最新代码覆盖本地

查看远程分支 加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话):

 cd /data/wwwroot/www.xxx,com/your-project

 git branch -a

第一种方法

 cd /data/wwwroot/www.xxx,com/your-project

 git fetch --all
 git reset --hard origin/master
 git fetch     #下载远程最新的, 然后,git reset master分支重置

第二种方法

cd /data/wwwroot/www.xxx,com/your-project

git reset --hard HEAD
git pull

五,软连接的相关知识:

1,linux删除软连接

#  mkdir test_chk

# touch test_chk/test.txt   

# vim test_chk/test.txt (这一步随便在这个test.txt里写点东东即可)

下面我们来创建test_chk目录 的软链接

# ln-s test_chk #(原来目录)    test_chk_ln  #( 软连接 )

# ln-s test_chk  test_chk_ln  # 创建软连接

软链接创建好了,我们来看看怎么删除它

正确的删除方式(删除软链接,但不删除实际数据)

rm -rf  ./test_chk_ln   # 注意后面没有/,否则就是删除原目录了!!

2,查看软链接:

2-1,本目录下是否有 软链接

   ls -all     #出现  " -> "  就是有  

2-2,查看Linux系统里有多少软链接:

    find /usr/lib -type l|xargs ls -l 

2-3,查看是否有 无用的 软链接:

  find . -type l  -print |xargs lsattr -d 2>&1|grep "No such file or directory"| awk '{print $11}'    

猜你喜欢

转载自blog.csdn.net/gaokcl/article/details/81512891