1月 112019
 

安装Remi及EPEL仓库

[root@localhost ~]# yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@localhost ~]# yum makecache

安装Jitamin基本运行环境软件包

[root@localhost ~]# yum install unzip net-tools php56-php php56-php-pdo php56-php-mysql php56-php-mbstring php56-php-gd httpd mariadb mariadb-server git

开启防火墙端口

[root@localhost ~]# firewall-cmd --permanent --add-service=http
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#

配置数据库

[root@localhost ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]#

[root@localhost ~]# mysql -uroot -p
MariaDB [(none)]> create database jitamin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on jitamin.* to jitamin@localhost;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> set password for jitamin@localhost=password('jitamin');
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

修改php.ini时区配置

[root@localhost ~]# vi /opt/remi/php56/root/etc/php.ini
date.timezone = Asia/Shanghai

[root@localhost ~]# php56 --version
PHP 5.6.40 (cli) (built: Jan 9 2019 12:21:54)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[root@localhost ~]#

[root@localhost ~]# cd /usr/bin/
[root@localhost bin]# ln -s php56 php

安装Composer

[root@localhost ~]# php56 -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
[root@localhost ~]# php56 -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified
[root@localhost ~]# php56 composer-setup.php
All settings correct for using Composer
Downloading...

Composer (version 1.8.0) successfully installed to: /root/composer.phar
Use it: php composer.phar

[root@localhost ~]# php56 -r "unlink('composer-setup.php');"
[root@localhost ~]# mv composer.phar /usr/bin/composer
[root@localhost ~]#

使用普通用户权限下载并配置Jitamin

[root@localhost ~]# useradd harveymei
[root@localhost ~]# su - harveymei
[harveymei@localhost ~]$ git clone https://github.com/jitamin/jitamin.git
Cloning into 'jitamin'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 14323 (delta 1), reused 0 (delta 0), pack-reused 14310
Receiving objects: 100% (14323/14323), 4.92 MiB | 663.00 KiB/s, done.
Resolving deltas: 100% (10492/10492), done.
[harveymei@localhost ~]$

[harveymei@localhost ~]$ cd jitamin/
[harveymei@localhost jitamin]$ cp .env.example .env
[harveymei@localhost jitamin]$
[harveymei@localhost jitamin]$ vi .env
APP_NAME=Jitamin
APP_ENV=production
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_TIMEZONE=Asia/Shanghai
APP_LOCALE=zh-CN
APP_THEME=black
APP_LOG=daily
APP_LOG_LEVEL=error
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=jitamin
DB_USERNAME=jitamin
DB_PASSWORD=jitamin

使用composer安装项目PHP依赖

[harveymei@localhost jitamin]$ composer install -o --no-dev
> php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Installing dependencies from lock file
Package operations: 27 installs, 0 updates, 0 removals
- Installing christian-riesen/base32 (1.3.1): Downloading (100%)
- Installing christian-riesen/otp (1.4.3): Downloading (100%)
- Installing eluceo/ical (0.10.1): Downloading (100%)
- Installing erusev/parsedown (1.6.0): Downloading (100%)
- Installing gregwar/captcha (v1.1.1): Downloading (100%)
- Installing jitamin/json-rpc (v1.2.2): Downloading (100%)
- Installing jitamin/picodb (v1.0.15): Downloading (100%)
- Installing jitamin/picofeed (v0.1.25): Downloading (100%)
- Installing jitamin/simple-logger (v1.0.2): Downloading (100%)
- Installing jitamin/simple-queue (v1.0.1): Downloading (100%)
- Installing jitamin/simple-validator (v1.0.2): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.2.14): Downloading (100%)
- Installing nesbot/carbon (1.33.0): Downloading (100%)
- Installing paragonie/random_compat (v2.0.11): Downloading (100%)
- Installing pimple/pimple (v3.0.2): Downloading (100%)
- Installing symfony/yaml (v2.8.7): Downloading (100%)
- Installing psr/log (1.0.2): Downloading (100%)
- Installing symfony/debug (v3.4.14): Downloading (100%)
- Installing symfony/console (v3.4.14): Downloading (100%)
- Installing symfony/polyfill-ctype (v1.9.0): Downloading (100%)
- Installing symfony/filesystem (v3.4.14): Downloading (100%)
- Installing symfony/config (v3.4.14): Downloading (100%)
- Installing robmorgan/phinx (v0.6.6): Downloading (100%)
- Installing swiftmailer/swiftmailer (v5.4.5): Downloading (100%)
- Installing symfony/event-dispatcher (v3.4.14): Downloading (100%)
- Installing vlucas/phpdotenv (v2.5.1): Downloading (100%)
Generating optimized autoload files
[harveymei@localhost jitamin]$

创建并初始化数据库

[harveymei@localhost jitamin]$ vendor/bin/phinx migrate
Phinx by Rob Morgan - https://phinx.org. 0.6.6

using config file ./phinx.php
using config parser php
using migration path database/migrations
using seed path database/seeds
warning no environment specified, defaulting to: mysql
using adapter mysql
using database jitamin

== 20161222061456 CreateUsersTable: migrating
== 20161222061456 CreateUsersTable: migrated 0.0055s

== 20161222065743 CreateRememberMeTable: migrating
== 20161222065743 CreateRememberMeTable: migrated 0.0027s

== 20161222071058 CreateGroupsTable: migrating
== 20161222071058 CreateGroupsTable: migrated 0.0031s

== 20161222071513 CreateSettingsTable: migrating
== 20161222071513 CreateSettingsTable: migrated 0.0017s

== 20161222072332 CreateProjectsTable: migrating
== 20161222072332 CreateProjectsTable: migrated 0.0021s

== 20161222073541 CreateActionsTable: migrating
== 20161222073541 CreateActionsTable: migrated 0.0018s

== 20161222073852 CreateColumnsTable: migrating
== 20161222073852 CreateColumnsTable: migrated 0.0026s

== 20161222074452 CreateTasksTable: migrating
== 20161222074452 CreateTasksTable: migrated 0.0032s

== 20161222081719 CreateCommentsTable: migrating
== 20161222081719 CreateCommentsTable: migrated 0.0025s

== 20161222082417 CreateSwimlanesTable: migrating
== 20161222082417 CreateSwimlanesTable: migrated 0.0023s

== 20161222083010 CreateTagsTable: migrating
== 20161222083010 CreateTagsTable: migrated 0.0018s

== 20161222083245 CreateSubtasksTable: migrating
== 20161222083245 CreateSubtasksTable: migrated 0.0020s

== 20161222083935 CreateLinksTable: migrating
== 20161222083935 CreateLinksTable: migrated 0.0046s

== 20161222084249 CreateTransitionsTable: migrating
== 20161222084249 CreateTransitionsTable: migrated 0.0034s

== 20161222084940 CreateCustomFiltersTable: migrating
== 20161222084940 CreateCustomFiltersTable: migrated 0.0023s

== 20161222085354 CreateLastLoginsTable: migrating
== 20161222085354 CreateLastLoginsTable: migrated 0.0020s

== 20161222085809 CreatePasswordResetTable: migrating
== 20161222085809 CreatePasswordResetTable: migrated 0.0019s

== 20161222091052 CreatePluginSchemaVersionsTable: migrating
== 20161222091052 CreatePluginSchemaVersionsTable: migrated 0.0018s

== 20161222091605 CreateProjectActivitiesTable: migrating
== 20161222091605 CreateProjectActivitiesTable: migrated 0.0028s

== 20161222092217 CreateProjectDailyColumnStatsTable: migrating
== 20161222092217 CreateProjectDailyColumnStatsTable: migrated 0.0025s

== 20161222092312 CreateProjectDailyStatsTable: migrating
== 20161222092312 CreateProjectDailyStatsTable: migrated 0.0019s

== 20161222093033 CreateSchemaVersionTable: migrating
== 20161222093033 CreateSchemaVersionTable: migrated 0.0014s

== 20161222093333 CreateActionHasParamsTable: migrating
== 20161222093333 CreateActionHasParamsTable: migrated 0.0019s

== 20161222094356 CreateProjectHasRolesTable: migrating
== 20161222094356 CreateProjectHasRolesTable: migrated 0.0016s

== 20161222094851 CreateColumnHasRestrictionsTable: migrating
== 20161222094851 CreateColumnHasRestrictionsTable: migrated 0.0023s

== 20161222094859 CreateColumnHasMoveRestrictionsTable: migrating
== 20161222094859 CreateColumnHasMoveRestrictionsTable: migrated 0.0024s

== 20161222095207 CreateGroupHasUsersTable: migrating
== 20161222095207 CreateGroupHasUsersTable: migrated 0.0030s

== 20161222095739 CreateProjectHasCategoriesTable: migrating
== 20161222095739 CreateProjectHasCategoriesTable: migrated 0.0017s

== 20161222100221 CreateProjectHasFilesTable: migrating
== 20161222100221 CreateProjectHasFilesTable: migrated 0.0016s

== 20161222104316 CreateProjectHasGroupsTable: migrating
== 20161222104316 CreateProjectHasGroupsTable: migrated 0.0017s

== 20161222104338 CreateProjectHasMetadataTable: migrating
== 20161222104338 CreateProjectHasMetadataTable: migrated 0.0019s

== 20161222104355 CreateProjectHasStarsTable: migrating
== 20161222104355 CreateProjectHasStarsTable: migrated 0.0020s

== 20161222104411 CreateProjectHasNotificationTypesTable: migrating
== 20161222104411 CreateProjectHasNotificationTypesTable: migrated 0.0016s

== 20161222104427 CreateProjectHasUsersTable: migrating
== 20161222104427 CreateProjectHasUsersTable: migrated 0.0022s

== 20161222112306 CreateProjectRoleHasRestrictionsTable: migrating
== 20161222112306 CreateProjectRoleHasRestrictionsTable: migrated 0.0022s

== 20161222112615 CreateSubtaskTimeTrackingTable: migrating
== 20161222112615 CreateSubtaskTimeTrackingTable: migrated 0.0019s

== 20161222113157 CreateTaskHasExternalLinksTable: migrating
== 20161222113157 CreateTaskHasExternalLinksTable: migrated 0.0016s

== 20161222113205 CreateTaskHasFilesTable: migrating
== 20161222113205 CreateTaskHasFilesTable: migrated 0.0017s

== 20161222113217 CreateTaskHasLinksTable: migrating
== 20161222113217 CreateTaskHasLinksTable: migrated 0.0032s

== 20161222113234 CreateTaskHasMetadataTable: migrating
== 20161222113234 CreateTaskHasMetadataTable: migrated 0.0018s

== 20161222113239 CreateTaskHasTagsTable: migrating
== 20161222113239 CreateTaskHasTagsTable: migrated 0.0017s

== 20161222114814 CreateUserHasMetadataTable: migrating
== 20161222114814 CreateUserHasMetadataTable: migrated 0.0020s

== 20161222114828 CreateUserHasNotificationTypesTable: migrating
== 20161222114828 CreateUserHasNotificationTypesTable: migrated 0.0016s

== 20161222114837 CreateUserHasNotificationsTable: migrating
== 20161222114837 CreateUserHasNotificationsTable: migrated 0.0024s

== 20161222114844 CreateUserHasUnreadNotificationsTable: migrating
== 20161222114844 CreateUserHasUnreadNotificationsTable: migrated 0.0016s

== 20161225123941 AlterTableUsersAddApiTokenColumn: migrating
== 20161225123941 AlterTableUsersAddApiTokenColumn: migrated 0.0042s

== 20161228031419 AlterTableUsersAddLayoutColumn: migrating
== 20161228031419 AlterTableUsersAddLayoutColumn: migrated 0.0031s

== 20161231134810 AlterTableUsersAddDashboardColumn: migrating
== 20161231134810 AlterTableUsersAddDashboardColumn: migrated 0.0124s

== 20170105040003 AlterTableProjectsAddDefaultViewColumn: migrating
== 20170105040003 AlterTableProjectsAddDefaultViewColumn: migrated 0.0028s

== 20171228053201 AlterTableActionsAddPositionColumn: migrating
== 20171228053201 AlterTableActionsAddPositionColumn: migrated 0.0150s

All Done. Took 0.1642s
[harveymei@localhost jitamin]$
[harveymei@localhost jitamin]$ vendor/bin/phinx seed:run
Phinx by Rob Morgan - https://phinx.org. 0.6.6

using config file ./phinx.php
using config parser php
using migration path database/migrations
using seed path database/seeds
warning no environment specified, defaulting to: mysql
using adapter mysql
using database jitamin

== LinkSeeder: seeding
== LinkSeeder: seeded 0.0079s

== SettingSeeder: seeding
== SettingSeeder: seeded 0.0043s

== UserSeeder: seeding
== UserSeeder: seeded 0.0911s

All Done. Took 0.1050s
[harveymei@localhost jitamin]$

修改目录权限

[harveymei@localhost jitamin]$ chmod -R 777 bootstrap/cache/
[harveymei@localhost jitamin]$ chmod -R 777 storage/
[harveymei@localhost jitamin]$

清除缓存

[harveymei@localhost jitamin]$ php artisan config:cache
Configuration cached successfully!
[harveymei@localhost jitamin]$ php artisan route:cache
Routes cached successfully!
[harveymei@localhost jitamin]$

修改项目路径及配置Apache服务

[harveymei@localhost ~]$ exit
logout
[root@localhost ~]#
[root@localhost ~]# mv /home/harveymei/jitamin/ /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# chown -R apache.apache jitamin/
[root@localhost local]#

修改默认主机名

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
ServerName localhost

添加虚拟主机配置

[root@localhost ~]# vi /etc/httpd/conf.d/jitamin.conf
<VirtualHost *:80>
ServerName 192.168.108.67
DocumentRoot "/usr/local/jitamin/public/"

ErrorLog "logs/jitamin-error_log"
CustomLog "logs/jitamin-access_log" combined

<Directory "/usr/local/jitamin/public/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

检查配置文件并启动Apache服务

[root@localhost ~]# apachectl -t
Syntax OK
[root@localhost ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost ~]# systemctl start httpd
[root@localhost ~]#

使用浏览器访问Jitamin服务