#取消注释 LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so #http.conf <IfModule mod_deflate.c> SetOutputFilter DEFLATE #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩 SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩 SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩 SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary AddOutputFilterByType DEFLATE text/* #设置对文件是文本的内容进行压缩,例如text/html text/css text/plain等 AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩 AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #这段是告诉apache对php类型的文件进行压缩 BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的 BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的问题,所以不开启压缩 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # IE浏览器会伪装成Netscape ,但是事实上它没有问题 </IfModule>
月度归档: 2018 年 12 月
wordpress FTP
使用FTP软件连接FTP空间,进入wp-content目录,新建tmp文件夹,设置文件夹的权限为777
下载:在FTP中返回网站根目录,找到wp-config.php这个PHP文件,下载到本地
修改:在wp-config.php中添加下列三行代码:
define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);/* WordPress的临时目录。*/
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
注意:要在定义ABSPATH的后面,即在它的后面添加
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);
================================
最后的代码应该是:
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);
define(‘WP_TEMP_DIR’, ABSPATH.’wp-content/tmp’);
define(“FS_METHOD”, “direct”);
define(“FS_CHMOD_DIR”, 0777);
define(“FS_CHMOD_FILE”, 0777);
彻底解决wordpress安装主题或插件需要FTP问题
上传:上传覆盖wp-config.php文件
设置wp-content目录中的plugins(插件)和themes(主题)文件夹权限为777。
至此,你的插件和主题已经可以自动更新了。
此为终极解决办法,其它都为阉割版本。
为了安全,应在.htaccess中把 tmp、themes、plugin 这些读写权限为777的文件夹,设置为没有执行权限。
WordPress多域名绑定方法
有时候想,如果wordpress能像discuz论坛一样,能用其他域名或IP访问同一网站而且打开帖子就好了。我在本地装了wordpress,而且绑定了域名,有网络的时候可以用域名访问和使用网站,但是没网络的时候想用IP访问使用却不能。比如我用192.168.1.2访问本地的网站是可以的,但是wordpress的后台已经设置的网址是abc.com,所以没网络的时候,不能打开文章,因为它的网址还是abc.com/123.html的格式,不是192.168.1.2/123.html格式。这一点就比不上discuz,因为discuz两者都可以访问和使用网站。
从网上收到了一个好方法,让wordpress也像discuz一样,可以多域名或IP访问使用同一网站。在网站根目录找到wp-config.php 文件,在文件里找代码 require_once(ABSPATH . ‘wp-settings.php’); 在其上面添加以下代码(一定要在这段代码的上面,不然无法读取CSS样式、图片等等。):
$home = ‘http://’.$_SERVER[‘HTTP_HOST’];
$siteurl = ‘http://’.$_SERVER[‘HTTP_HOST’];
define(‘WP_HOME’, $home);
define(‘WP_SITEURL’, $siteurl);
我们知道,PHP 中的 $_SERVER[‘HTTP_HOST’] 用于获得来路域名。这样,就能根据来路为 WP_HOME 和 WP_SITEURL 变量赋值,实现 WordPress 多域名绑定。
注意:为防止域名改变而造成图片不可用,必须在控制面板的“设置 (Settings) – 媒体 (Media)”里将“文件的完整 URL 地址”设为 “wp-content/uploads”(与“默认上传路径”参数相同)。如果你在固定链接里设置了非默认的其他项,在“文件的完整 URL 地址”添加 “wp-content/uploads”会使图片链接不对。
laravel 项目迁移
git clone https://github.com/
cp -f .env.example .env
vi .env
chmod -R 777 bootstrap/cache
chmod -R 777 storage
composer dumpautoload
composer update
php artisan key:generate
laravel error mysql 5.5.55
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was t
oo long; max key length is 767 bytes (SQL: alter table `users` add unique `
users_email_unique`(`email`))
use Illuminate\Support\Facades\Schema; public function boot() { // Schema::defaultStringLength(191); }
composer中国镜像
https://pkg.phpcomposer.com/
laravel npm run dev error
错误:SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
node版本低,node5.0在文件第一行加 ”use strict”,或者更新node
brew upgrade node#更新node
curl -sL https://deb.nodesource.com/setup_6.x | bash –
apt-get install nodejs
错误:cross-env NODE_ENV=development webpack –watch –progress –hide-modules –config=node_modules/laravel-mix/setup/webpack.config.js
npm rebuild node-sass
npm run dev#successfully
PHP中spl_autoload_register函数的用法
spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明 bool spl_autoload_register ([ callback $autoload_function ] ) 将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激活它们。 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中。因为 spl_autoload_register()函数会将Zend Engine中的__autoload函数取代为spl_autoload()或 spl_autoload_call()。 参数 autoload_function 欲注册的自动装载函数。如果没有提供任何参数,则自动注册autoload的默认实现函数 spl_autoload()。 返回值 如果成功则返回 TRUE,失败则返回 FALSE。 注:SPL是Standard PHP Library(标准PHP库)的缩写。它是PHP5引入的一个扩展库,其主要功能包括autoload机制的实现及包括各种Iterator接口或类。 SPL autoload机制的实现是通过将函数指针autoload_func指向自己实现的具有自动装载功能的函数来实现的。SPL有两个不同的函数 spl_autoload, spl_autoload_call,通过将autoload_func指向这两个不同的函数地址来实现不同的自动加载机制。 范例 设我们有一个类文件A.php,里面定义了一个名字为A的类: view plaincopy to clipboardprint? <?php class A { public function __construct() { echo 'Got it.'; } } 然后我们有一个index.php需要用到这个类A,常规的写法就是 view plaincopy to clipboardprint? <?php require('A.php'); $a = new A(); 但是有一个问题就是,假如我们的index.php需要包含的不只是类A,而是需要很多类,这样子就必须写很多行require语句,有时候也会让人觉得不爽。 不过在php5之后的版本,我们就不再需要这样做了。在php5中,试图使用尚未定义的类时会自动调用__autoload函数,所以我们可以通过编写__autoload函数来让php自动加载类,而不必写一个长长的包含文件列表。 例如在上面那个例子中,index.php可以这样写: view plaincopy to clipboardprint? <?php function __autoload($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } $a = new A(); 当然上面只是最简单的示范,__autoload只是去include_path寻找类文件并加载,我们可以根据自己的需要定义__autoload加载类的规则。 此外,假如我们不想自动加载的时候调用__autoload,而是调用我们自己的函数(或者类方法),我们可以使用spl_autoload_register来注册我们自己的autoload函数。它的函数原型如下: bool spl_autoload_register ( [callback $autoload_function] ) 我们继续改写上面那个例子: view plaincopy to clipboardprint? <?php function loader($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register('loader'); $a = new A(); 这样子也是可以正常运行的,这时候php在寻找类的时候就没有调用__autoload而是调用我们自己定义的函数loader了。同样的道理,下面这种写法也是可以的: view plaincopy to clipboardprint? <?php class Loader { public static function loadClass($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register(array('Loader', 'loadClass')); $a = new A();
linux debain服务器配置
debian 软件包 https://packages.debian.org/stable/
whereis apache2
dpkg -L apache2 查看安装的包在哪里
apt-get install locales dpkg-reconfigure locales #勾选“en_US.UTF-8”和“zh_CN.UTF-8” apt-get update#安装时提示404则更新下 apt-get dist-upgrade apt-get install apache2 apt-get install mysql-server apt-get install php7.2-fpm apt-get install php7.2-mbstring apt-get install php7.2-dom apt-get install php7.2-curl apt-get install php7.2-gd apt-get install php7.2-mysql service php7.2-fpm restart apt-get install git apt-get install node apt-get install npm npm install -g pm2 apt-get install redis-server #composer php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');" mv composer.phar /usr/local/bin/composer #apache配置 vi /etc/apache2/apache2.conf # AllowOverride all a2enmod rewrite#开启重写模块,取消模块a2dismod #gzip a2enmod deflate#压缩模块 a2enmod headers vi /etc/apache2/mods-available/deflate.conf #添加 SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary AddOutputFilterByType DEFLATE text/* AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html a2enmod deflate #apache站点 cd /etc/apache2/sites-available cp -f 000-default.conf xuanzeta.com.conf vi xuanzeta.com.conf #重写 #RewriteEngine on #RewriteCond %{HTTPS} !=on #RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R] #servername ServerName xuanzeta.com DocumentRoot /var/www/web #代理 #DocumentRoot /var/www/zhshht/public ProxyPreserveHost On ProxyPass / http://localhost:6001/ ProxyPassReverse / http://localhost:6001/ :wq a2ensite xuanzeta.com.conf#启动站点,取消站点a2dissite service apache2 reload service apache2 restart #远程mysql #netstat -an|grep 3306 端口未开放 vi /etc/mysql/my.cnf #bind-address = 127.0.0.1 service mysql restart mysql -u root -p
mac VIM
https://github.com/mxyg/f-vim
sudo xcodebuild -license
brew install lua
https://github.com/mxyg/vim-plug
:PlugInstall