作者存档: zhcj

PEAR package PHP_Archive not installed: generated phar will require PHP’s phar extension be enabled.

Linux下编译安装PHP时,make后出现:

PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.

解决办法:

先不理它,make install之后,运行以下命令:

/php安装目录/bin/pear install channel://pear.php.net/PHP_Archive-0.12.0
downloading PHP_Archive-0.12.0.tgz ... 
Starting to download PHP_Archive-0.12.0.tgz (86,179 bytes) 
.....................done: 86,179 bytes 
install ok: channel://pear.php.net/PHP_Archive-0.12.0

再次make,不再提示。

解决了一个php编译的问题

最近几天尝试了一下PHP 7.2.0 Alpha 1,在linux编译安装时,发现php.ini及extensions路径不对,都成了默认的PHP 7.1的路径,如下表:

Configuration File (php.ini) Path /lnmp/php7.2
Loaded Configuration File /lnmp/php/php.ini
Scan this dir for additional .ini files /lnmp/php7.2/lib/php/extensions
Additional .ini files parsed /lnmp/php/lib/php/extensions/opcache.ini

尝试重新编译,无效,删掉/lnmp/php7.2也无效,昨天折腾一天都没结果。

今天晚上突然想到是不是源码目录的问题?于是删掉PHP 7.2.0的源码目录,重新解压源码,再次configure;make;make install,问题解决。

原因分析:

貌似第一次configure;make;make install时,使用了–prefix=/lnmp/php,后来发现不对,要和原来编译的PHP 7.1分开,于是重新configure,改成了–prefix=/lnmp/php7.2。猜测是源码在configure时,prefix信息没有被修改过来,造成此问题。

又好久不更新了,放张图凑个数

更新服务器

服务器系统版本及网站环境:

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@localhost ~]# nginx -v
nginx version: nginx/1.11.9
[root@localhost ~]# php-fpm -v
PHP 7.1.1 (fpm-fcgi) (built: Jan 20 2017 18:12:47)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.1, Copyright (c) 1999-2017, by Zend Technologies
[root@localhost ~]# mysql -V
mysql  Ver 15.1 Distrib 10.1.21-MariaDB, for Linux (x86_64) using readline 5.1

WordPress升级,服务器的LNMP环境也升级到了最新

昨天晚上抽空把Wordpress升级了一下,升级到了最新的版本:4.7,LNMP环境也编译升级到了最新!

现在LNMP环境:

[root@localhost ~]# nginx -v
nginx version: nginx/1.11.7
[root@localhost ~]# php -v
PHP 7.1.0 (cli) (built: Dec 21 2016 23:47:30) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.1.0, Copyright (c) 1999-2016, by Zend Technologies
[root@localhost ~]# mysql -V
mysql  Ver 15.1 Distrib 10.1.20-MariaDB, for Linux (x86_64) using readline 5.1

升级完才发现CentOS还没升级到7.3,抽空把系统也更新一下。

github静态博客(github pages)创建及绑定域名

wordpress太臃肿了,感觉运行越来越慢,一直想迁移到github pages,这段时间研究了一下,很简单,记录一下过程。

1、创建github项目,如github.com/zhcj/zhcj.github.io,然后git clone到本地后,添加index页面,提交。

2、域名管理

我用的是dnspod,登录后,添加一个CNAME,我设置了一个二级域名,记录值填写为zhcj.github.io即可。

3、github项目根目录添加一个文件:CNAME,把添加的二级域名写上,一行就行。

4、github静态博客可以用Hexo(本地npm安装,需要nodejs环境),或者Jekyll(本地gem安装,需要ruby环境),根据自己的喜好选择一个吧。

完成!

试试:http://note.phpcj.org/

我的grub引导文件

[20161125更新]

弄了块ssd硬盘,装了若干系统,加上旧硬盘的系统,引导是个问题,安装os-prober后自动生成的引导文件太乱,索性自己写了一个。

前提:主系统Gentoo安装grub就行,其他不用。

1、/etc/grub.d/40_myos(本站下载

cat << EOF
menuentry 'Ubuntu 16.10 (16.10) (on /dev/mapper/linux-ubuntu)' {
        insmod lvm
        insmod ext2
        set root='lvm/linux-ubuntu'
        linux /boot/vmlinuz-4.8.0-27-generic root=/dev/mapper/linux-ubuntu ro quiet splash
        initrd /boot/initrd.img-4.8.0-27-generic
}
menuentry 'CentOS Linux release 7.2.1511 (Core)  (on /dev/mapper/linux-centos)' {
        insmod lvm
        insmod ext2
        set root='lvm/linux-centos'
        linux /boot/vmlinuz-3.10.0-327.36.3.el7.x86_64 root=/dev/mapper/linux-centos ro recovery nomodeset
        initrd /boot/initramfs-3.10.0-327.36.3.el7.x86_64.img
}
menuentry 'CentOS Linux release 7.2.1511 (Core)  (on /dev/sdb1)' {
        insmod part_msdos
        insmod xfs
        set root='hd0,msdos1'
        linux /boot/vmlinuz-3.10.0-327.36.3.el7.x86_64 root=/dev/sdb1
        initrd /boot/initramfs-3.10.0-327.36.3.el7.x86_64.img
}
menuentry 'Windows 10 (loader) (on /dev/sda1)' {
        insmod part_msdos
        insmod ntfs
        set root='hd0,msdos2'
        chainloader +1
}
menuentry 'Windows 10 (loader) (on /dev/sdb2)' {
        insmod part_msdos
        insmod ntfs
        set root='hd1,msdos1'
        chainloader +1
}
menuentry "Ubuntu 16.10 Live" {
        set isofile="/os/ubuntu-16.10-desktop-amd64.iso"
        loopback loop (hd1,6)\$isofile
        linux   (loop)/casper/vmlinuz.efi locale=zh_CN.UTF-8 file=(loop)/preseed/ubuntu.seed boot=casper iso-scan/filename=\$isofile locale=zh_CN.UTF-8 quiet splash --
        initrd  (loop)/casper/initrd.lz
}
menuentry "Archlinux-2016.10.01-dual.iso" {
    set isofile="/os/archlinux-2016.10.01-dual.iso"
    loopback loop (hd1,6)\$isofile
    linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCH_201610 img_dev=/dev/sda6 img_loop=\$isofile
    initrd (loop)/arch/boot/i686/archiso.img
}
EOF

2、加上可执行权限

chmod +x /etc/grub.d/40_myos

3、更新

# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.8.5-gentoo
done

说明:

1、前面两个(ubuntu、centos7)是在ssh上lvm分区(sda8)上的两个系统,还打算装几个,共用1G的boot(sda7)分区添加insmod lvm后,可以不用单独挂载boot分区;

2、第三个centos7是旧硬盘(sdb1)上的;

3、第四、五是新(sda1)旧(sdb2)硬盘上分别安装的win10;

4、最后两个是ssd(sda6)上的iso文件,这个就随便加了,想加几个加几个。

CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake

编译mariadb时出现如下提示:

CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message):
/usr/bin/c++ doesn't support -std=c++11 or -std=c++0x, you need one that does.

说明编译mariadb时,tokuDB引擎需要支持c++11的编译器,如果确实想用tokuDB引擎,那就编译一个高版本的gcc。如果不需要tokuDB引擎,直接在编译参数中加上-DPLUGIN_TOKUDB=NO就行了。

[原创]Git版本控制系统安装使用简明手册(网站开发用)

一、Linux服务器端

1、创建git账号

mkdir -p /myweb/user
groupadd git
useradd git -g git -m -s /usr/bin/git-shell -b /myweb/user

2、安装git

yum install git

3、创建git空版本库

cd /myweb
git init --bare git

4、创建或迁移网站目录

git clone /myweb/git /myweb/www
cp /原代码目录/* /myweb/www/
cd /myweb/www
git add *
git commit -m "创建项目"
git push origin master

5、设置网站钩子(提交代码到git版本库后,自动拉取到网站目录)

cd /myweb/git/hooks
mv post-update.sample post-update
sed -i "s/exec/#exec/" post-update
echo "unset \$(git rev-parse --local-env-vars)" >> post-update
echo "cd /myweb/www" >> post-update
echo "git pull" >> post-update

6、修改git库及网站目录权限

chown git:git /myweb/git -R
chown git:git /myweb/www -R

7、创建登录密钥(也可以在Windows中用puttygen来创建)

ssh-keygen -C mygitserver -f mykey

出现提示后,如果需要密码,输入密码,如是不需要密码,回车即可,再次确认后,密钥对创建成功。其中当前目录下的mykey(你的私钥)文件请一定要妥善保管,千万不能留在服务器上,下载保存后从服务器中删除。公钥添加到服务器中。

mkdir /myweb/user/git/.ssh
mv mykey.pub /myweb/user/git/.ssh/authorized_keys
chown git:git /myweb/user/git/.ssh -R
chmod 700 /myweb/user/git/.ssh
chmod 600 /myweb/user/git/.ssh/authorized_keys

8、卸载或停用selinux(虽然不建议,但对于新手来说,selinux确实很令人困扰,卸载是最简单的办法)

yum remove selinux*

几个注意事项:

  • 以上操作中的git用户名、mykey文件名、myweb目录、/myweb/www网站目录等,均可根据自己习惯用其他名称。
  • 网站服务nginx/apache及php的运行用户,设置成git会更加方便,不会有权限问题(安全性要求高的网站不在此考虑)。
  • 如在服务器的网站目录/data/www下运行git pull/push命令,一定要在运行完命令之后,再次更改git库及网站目录权属,具体命令见上面步骤6。

二、Git客户端使用方法

1、安装git客户端

Windows系统下的图形客户端,建议用TortoiseGit,注意中文包需要单独下载。

2、将前面生成的私钥导入到客户端

  • Linux系统、Windows系统的Git Bash方式(命令行操作):
mkdir ~/.ssh
cp mykey ~/.ssh/id_rsa
  • Windows系统中TortoiseGit图形界面(两种密钥使用方法):

方式一:安装时默认选择的是putty方式的密钥,需要用安装TortoiseGit时带的puttygen工具,将mykey文件导入,再点击“Save private key”导出为ppk文件。使用TortoiseGit时,导入此密钥文件即可。

方式二:安装时手动选择OpenSSH方式的密钥,按上面Git Bash的方式导入mykey密钥即可在TortoiseGit中自动调用上述密钥。

3、从服务器克隆项目

  • Linux系统、Windows系统的Git Bash方式(命令行操作):
git clone ssh://git@服务器IP:端口号/myweb/git /本地路径
  • Windows系统中TortoiseGit图形界面:

在文件夹中右键:克隆,地址同上。

小常识:密钥

密钥登录是Linux服务器管理中常用的一种登录方式。密钥为一对,分公钥和私钥,公钥放在服务器上,私钥妥善保存在自己电脑中。类似于生活中的锁和钥匙,用自己的锁锁住的门,只有自己手里的钥匙才能打开。不用担心,计算机生成的密钥对不会有相同的情况,这种机率只存在于理论中。

不让smplayer保存播放记录

发现不让smplayer保存播放记录的一个方法:

打开smplayer的配置文件(~/.config/smplayer/smplayer.ini),将[history]段中默认的

recents\max_items=10

改成

recents\max_items=0

就行了。再打开smplayer,你会发现,在“打开”中,连播放记录的菜单都没有了。

第 1 页,共 49 页12345...102030...最旧 »