一,安装虚拟主机:
0, 查找文件: whereis xxx 或者 find / -name xxx
deepin 参考 :https://blog.csdn.net/yuanlaijike/article/details/76651006
https://blog.csdn.net/tao_627/article/details/47861541
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缓存加速很有用。
http://www.ptbird.cn/let-s-encrypt-ssl-dns-probles.html
https://blog.csdn.net/tao_627/article/details/47861541
deepin 参考:https://bbs.deepin.org/forum.php?mod=viewthread&tid=140442&extra=
zlib的命令安装就三条,依次输入执行,简单粗暴: oneinstack 安装 PHP 失败
sudo apt-get install ruby
sudo apt-get install zlib1g
sudo apt-get install zlib1g.dev
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}'