Browsed by
分类: 后端

使用 Homebrew 完成 macOS 10.12 Sierra 下 PHP 多版本切换

使用 Homebrew 完成 macOS 10.12 Sierra 下 PHP 多版本切换

之前的文章我们已经通过 brew 成功安装 Apache 2.4 接下来,我们继续安装 PHP。通过以下命令分别安装多个版本。

$ brew install php55 --with-httpd24 
$ brew unlink php55 
$ brew install php56 --with-httpd24 
$ brew unlink php56 
$ brew install php70 --with-httpd24 
$ brew unlink php70 
$ brew install php71 --with-httpd24

执行完成后四个版本的 PHP 位于下列位置:

/usr/local/Cellar/php55/
/usr/local/Cellar/php56/
/usr/local/Cellar/php70/
/usr/local/Cellar/php71/

接下来我们安装 sphpsphp 可以方便切换 PHP 版本,官方网址 https://github.com/sgotre/sphp-osx

# 下载到本地目录
curl -L https://raw.githubusercontent.com/sgotre/sphp-osx/master/sphp > /usr/local/bin/sphp

# 添加可执行权限
chmod +x /usr/local/bin/sphp

在运行 sphp 之前确保 /usr/local/bin 添加到 $PATH,通过以下命令进行检查:

echo $PATH | grep '/usr/local/bin' 

出现以下结果则为正常

如果未出现,请使用以下命令:

# Terminal
echo 'export PATH="/usr/local/bin:$PATH"' >> $HOME/.bashrc
# iTerm
echo 'export PATH="/usr/local/bin:$PATH"' >> $HOME/.zshrc

现在通过以下命令完成 PHP 版本切换:

sphp 55
sphp 56
sphp 70
sphp 70
使用 Homebrew macOS 10.12 Sierra 下安装 Apache 2.4

使用 Homebrew macOS 10.12 Sierra 下安装 Apache 2.4

先确认安装 xcode 命令行工具集,执行一次如下命令

xcode-select --install

如果之前已经安装会得到错误信息如下:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

安装 Homebrew

因为接下来我们全程都需要使用 brew 来完成,通过以下命令安装:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

如果之前安装过 brew,通过查下版本信息并更新

# 查看 brew 版本信息
brew -v
# brew 自检,确保配制正确
brew doctor
# brew 信息更新
brew update

到此,brew 已经准备就绪。

安装 Apache

macOS 10.12 Sierra 系统有预装 Apache 2.4,但有一些功能被移除会导致使用起来有这样那样的问题。我们使用 Homebrew 安装标准版 Apache 2.4 并且运行与标准的 80/443 端口。所有这些操作需要先停止运行中的 Apache,删除系统原有自启动项,系列命令如下:

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
brew install httpd24 --with-privileged-ports --with-http2

至此,已经将最新版本的 Apache 2.4.25 (作者写作时 Apache 的版本) 安装以下目录:

/usr/local/Cellar/httpd24/2.4.25/

接下来比较操作将新安装的 Apache 设置为随系统启动。


sudo cp -v /usr/local/Cellar/httpd24/2.4.25/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

至此,打开浏览器会看到如下画面,Apache 已正常工作。

通过命令行得到的 Apache 版本信息。

httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jan 11 2017 20:47:08
git 免费私有仓库,bitbucket不容错过

git 免费私有仓库,bitbucket不容错过

选择 Bitbucket 作为 git 私有仓库原因如下:

Bitbucket 稳定

Bitbucket是由Atlassian开发,一家在NASDAQ上市的公司,市值70亿多亿美金。2016年Atlassian收入4.57亿美元,选靠山当然先大的。把你辛辛苦苦写代码放在小公司免费仓库上,或许托管的公司倒闭不再提供服务,代码有风险。

支持两步认证,安全性高

两步验证是安全的标配,当然选有两步验证的托管厂商。

5个用户内免费,最大存储空间是 5G

重要是5个用户是免费的,小团队5个也够用,就算团队扩大可以平衡改变计划,10用户每月10差不多的费用也比 Github 实惠,Github 每个用户每月7美元。

支持从多种源导入项目

Bitback 支持从 CodePlex, Github, Google Code, Mercurial, SoureForge, Subversion 多种源导入项目,非常方便。

本地 Git 项目添加到 Bitbucket 简单易操作

在 Bitbucket 上建好 Git 项目后,只要两步完成项目提交。

第一步,切换到你本地 Git 仓库目录:

cd /path/to/your/repo

第二步,将本地项目关联到 Bitbucket:

git remote add origin ssh://git@bitbucket.org/your-username/your-project-name.git
git push -u origin master

结论

Bitbucket 可以作为你的免费私有仓库,值得一试。

OS X 或 macOS 下 php composer 项目开发 gitignore 设置

OS X 或 macOS 下 php composer 项目开发 gitignore 设置

php-composer

OS X 或 macOS 下 PHP 开发离不开这三样:

  • Composer (PHP Dependency manager) PHP 包依赖管理,公共包要引用只要修改 composer.json 运行 composer install 引入类库非常方便;
  • NPM (node package manager) Gulp 中会使用,自动编译 SCSS/LESS 并合并 CSS,压缩图片,最小压缩 Javascript 等;
  • Bower (front-end package manager) 前面包管理,比如引用 Boostrap 运行 bower install bootstrap

使用 git 管理源码时 .gitignore 推荐配制:

.DS_Store
npm-debug.log 
/bower_components 
/node_modules
/vendor

将公共代码排除源码版本之外是为了项目体积,保持整洁,以下为详解。

  • .DS_Store 是 Mac 系统下缩略图缓存文件
  • npm-debug.log npm 运行过程产生的错误信息
  • bower_components 文件夹下是 bower 下载的文件包,我们会使用 gulp 将必要的引用打包压缩成一个 css 引入到程序
  • node_modules 文件夹是 gulp 辅助开发过程,应该排除在 git 之外
  • vendor 存储者引入的 PHP 包,这些也排除在 git 之外,git 只保留 composer.json 即可。
如何优化 Joomla 3.x 的加载速度

如何优化 Joomla 3.x 的加载速度

1. 升级你的 PHP 和 MySQL 版本 最新版本的 PHP 和 MySQL 不仅意味更高的安全性,也意味着运行性能提升。

2. 开启 gzip 页面压缩 页面开启压缩后,页面大小缩小,更小的体积意味加载速度更短,访问更快。设置路径:系统->全局设置->服务器->服务器设置
enable-gzip

3. 开启Joomla缓存 服务器端开启缓存,程序不用每次都从 MySQL 读取数据,直接返回缓存数据从而运行更快。设置路径:系统->全局设置->服务器->缓存设置

enable-system-cache

4. 删除不使用的扩展、插件、菜单及内容 扩展、插件、旧内容占用存储空间,定期清理系统,删除、删除还是删除。

5. 内容中使用的图片裁剪到合适大小 过大的图片导致页面加载慢,消耗过多流量会产生不必要的成本,一定要将图片裁剪合适的大小,不要直接将几M的图片直接上载到内容中。比如,如果内容中需要500px宽的图片,那么就将图片裁剪到500px的宽度再上载。

6. 合并压缩css及js文件减少请求数 可以借助系统插件jch-optimize 解决。

7. Apache 或 Nginx 配制开启客户端静态文件缓存

Apache服务器,.htaccess文件中设置静态文件缓存的方法:

# 图片文件一年缓存期
<filesMatch ".(jpg|jpeg|png|gif|ico)$">
Header set Cache-Control "max-age=31536000, public"
</filesMatch>
# css及js文件一个月的缓存期
<filesMatch ".(css|js)$">
Header set Cache-Control "max-age=2628000, public"
</filesMatch>

nginx 静态文件缓存设置示例:

server {
    listen 80 default_server;
    root /var/www/;
    index index.html index.htm;

    server_name example.com www.example.com;

    charset utf-8;
    
    # 静态文件缓存设置开始
    location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 365d;
    }
    # 静态文件缓存设置结束
    
    location / {
        include proxy_params;
        proxy_pass http://172.17.0.18:9000;
    }
}

8. 如果有预算足够为你的网站添加 CDN,让你的客户访问更快。国内七牛、腾讯云、UPYUN等都是不错的选择。

linux 系统版本检查命令

linux 系统版本检查命令

1. 内核版本查看命令

$ uname -r

内核版本输出示例:

2.6.32-642.11.1.el6.x86_64

或者

$ uname -a

内核版本输出示例:

Linux server1 2.6.32-642.11.1.el6.x86_64 #1 SMP Fri Nov 18 19:25:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

2. 系统版本查看命令

$ cat /etc/*release

系统版本输出示例:

CentOS release 6.9 (Final)
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
CentOS release 6.9 (Final)
CentOS release 6.9 (Final)

或者

$ lsb_release -a

系统版本输出示例:

LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.9 (Final)
Release: 6.9
Codename: Final