Cách cài đặt kho lưu trữ trình soạn nhạc tùy chỉnh trên Ubuntu
Trong hướng dẫn này, ta sẽ cài đặt repository Composer tùy chỉnh. Điều này nghĩa là bạn có thể lưu trữ các gói riêng tư của bạn và sử dụng chúng trong file composer.json của bạn.
Composer là một công cụ quản lý phụ thuộc PHP cho phép bạn chỉ định những thư viện mà dự án của bạn cần và nó sẽ tự động cài đặt chúng cho bạn. Để biết thêm thông tin về Composer và cách sử dụng chung, vui lòng xem bài viết này .
Có hai loại repository tùy chỉnh: Satis
và Packagist
. Satis là một trang tĩnh, nghĩa là nó tạo ra các file JSON và HTML và đó là một trang web tĩnh. Packagist là mã của packagist.org và do đó là một công cụ rất tiên tiến bao gồm thống kê và tìm kiếm. Trong hướng dẫn này, bạn sẽ được hướng dẫn cách cài đặt cả hai.
Ở đây ta giả sử bạn biết Composer là gì và cách sử dụng nó. Nên cài đặt Satis hoặc Packagist (không phải cả hai).
Yêu cầu
- Server Ubuntu
- LAMP làm theo hướng dẫn này
- Git làm theo hướng dẫn này
Hài lòng
Như đã nói, Satis là một repository tĩnh. README của repository GitHub tuyên bố như sau:
Nó sử dụng các file composer.json nào làm đầu vào và kết xuất tất cả các gói bắt buộc (theo ràng buộc version của chúng) vào file Kho lưu trữ của Composer .
Việc cài đặt Satis rất dễ dàng:
cd /var/www/
curl -sS https://getcomposer.org/installer | php
php composer.phar create-project composer/satis --stability=dev --keep-vcs
Bây giờ tất cả những gì cần làm là thêm repository và tạo trang web tĩnh. Để thực hiện việc này, hãy tạo file satis.json
trong / var / www với nội dung sau (sử dụng nano /var/www/satis.json
để chỉnh sửa file ):
{
"name": "My Repository",
"homepage": "http://YOUR_IP",
"repositories": [
{ "type": "vcs", "url": "https://github.com/symfony/yaml" },
{ "type": "vcs", "url": "https://github.com/symfony/HttpFoundation"
}
],
"require-all": true
}
Trong file này, ta đặt tên cho repository , đặt trang chủ (phải được đặt thành root web từ nơi lưu trữ Satis) và một số repository được chỉ định. Đối với ví dụ này, tôi đã sử dụng 2 thành phần Symfony2. Bây giờ ta có thể tạo các trang web tĩnh:
php satis/bin/satis build satis.json .
Sử dụng các ví dụ này, bạn sẽ mất khá nhiều thời gian vì các kho này có nhiều version . Bạn có thể cần phải xác thực đối với GitHub, vì Composer sử dụng API GitHub có giới hạn về việc sử dụng theo mặc định. Trường hợp này cũng được mô tả trong phần Khắc phục sự cố trên trang web của Composer :
Do giới hạn tốc độ của GitHub đối với API của họ, nên có thể xảy ra trường hợp Composer nhắc xác thực yêu cầu tên user và password của bạn để nó có thể tiếp tục công việc của bạn .
Nếu bạn không muốn cung cấp thông tin đăng nhập GitHub của bạn cho Composer, bạn có thể tạo mã thông báo theo cách thủ công bằng quy trình sau:
Khi Composer hoàn tất, bạn có thể truy cập http: // YOUR_IP . Điều này sẽ hiển thị tất cả các gói và version đã được thêm vào.
Khi nào một trong các kho được cập nhật, lệnh ta sử dụng để tạo các trang web sẽ được chạy. Bạn cũng có thể sử dụng cron job cho việc này, nhưng điều đó đã được đề cập trong hướng dẫn này .
Người đóng gói
Bây giờ, ta sẽ bắt đầu cài đặt Packagist. Packagist là một ứng dụng Symfony2 nghĩa là nó có khá nhiều phụ thuộc. Bài viết này giả định bạn đang sử dụng một bản cài đặt mới, vì vậy KHÔNG nên cài đặt Satis. Như đã nêu trước đây, chỉ nên cài đặt một trong hai.
Đầu tiên, tất cả các yêu cầu phải được cài đặt.
Một trong những yêu cầu là Redis , một server lưu trữ database . Thực hiện các lệnh sau để cài đặt Redis:
sudo apt-get update
sudo apt-get -y install build-essential tcl8.5
cd /opt
wget http://download.redis.io/releases/redis-2.8.7.tar.gz
tar xzf redis-2.8.7.tar.gz
mv redis-2.8.7 redis
cd redis
Redis đã download này. Bây giờ ta nên biên dịch và cài đặt nó:
make
sudo make install
cd utils
Lệnh sau cài đặt server :
sudo ./install_server.sh
Bạn có thể nhấn enter cho mọi câu hỏi bạn nhận được, nghĩa là mặc định sẽ được sử dụng, điều này rất tốt cho cài đặt này. Cuối cùng, làm cho nó tự động khởi động:
sudo update-rc.d redis_6379 defaults
Kiểm tra xem nó có hoạt động không bằng cách thực thi:
redis-cli ping
Nếu nó phản hồi bởi PONG
, cài đặt của bạn hoạt động tốt.
Một yêu cầu khác là Solr : một công cụ tìm kiếm. Để cài đặt phần mềm này, trước tiên hãy cài đặt Java:
sudo apt-get -y install openjdk-7-jdk
mkdir /usr/java
Nếu bạn đang sử dụng Server 64-bit (hầu hết mọi người sẽ như vậy), bạn nên thực hiện lệnh sau:
ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default
Nếu bạn đang sử dụng hệ thống 32 bit, bạn nên thực hiện lệnh sau:
ln -s /usr/lib/jvm/java-7-openjdk-i386 /usr/java/default
Sau đó, download Solr:
cd /opt
wget http://archive.apache.org/dist/lucene/solr/3.6.2/apache-solr-3.6.2.tgz
tar -xvf apache-solr-3.6.2.tgz
cp -R apache-solr-3.6.2/example /opt/solr
cd /opt/solr
sudo wget -O /etc/default/jetty
https://gist.githubusercontent.com/koesie10/93cd2f2ab68471c34a25/raw/jetty
sudo wget -O /opt/solr/etc/jetty-logging.xml
https://gist.githubusercontent.com/koesie10/1070b285b45fb9de652c/raw/6adbb2d54455de4a0adce44015a294b77795d298/jetty-logging.xml
Tiếp theo, ta có thể cài đặt user Solr và khởi động tự động:
sudo useradd -d /opt/solr -s /sbin/false solr
sudo chown solr:solr -R /opt/solr
sudo wget -O /etc/init.d/jetty http://svn.codehaus.org/jetty/jetty/branches/jetty-6.1/bin/jetty.sh
sudo chmod a+x /etc/init.d/jetty
sudo update-rc.d jetty defaults
Bước cuối cùng là khởi động lại Solr:
sudo /etc/init.d/jetty restart
Để kiểm tra xem Solr có hoạt động hay không, hãy truy cập http://YOUR_IP:8983/solr
trong trình duyệt của bạn. Nếu điều này đưa ra giao diện quản trị, thì quá trình cài đặt của bạn đã thành công.
Ta cũng nên cấu hình Apache và PHP một cách chính xác:
sudo a2enmod rewrite
sudo apt-get -y install php5-intl php5-curl acl git
Đến đây bạn có thể bắt đầu cài đặt thực sự của Packagist. Để bắt đầu, hãy thực hiện các lệnh sau:
cd /var/www/
rm index.html info.php
git clone https://github.com/composer/packagist .
curl -sS https://getcomposer.org/installer | php
Đầu tiên, tạo database bằng cách mở dòng lệnh mysql:
mysql
Bạn có thể được yêu cầu xác thực nếu bạn đã đặt password cho user root , điều này được khuyến khích . Tạo một user có tên packagist
và chỉ định password (thay đổi password your_password
thành một thứ an toàn hơn):
CREATE USER 'packagist'@'localhost' IDENTIFIED BY 'your_password';
GRANT USAGE ON * . * TO 'packagist'@'localhost' IDENTIFIED BY
'your_password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0
MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `packagist`;
GRANT ALL PRIVILEGES ON `packagist` . * TO 'packagist'@'localhost';
exit;
Điều này cũng sẽ tạo ra một database được gọi là packagist
.
Bây giờ sao chép các parameters.yml
file .yml .dist vào tham số.yml:
cp app/config/parameters.yml.dist app/config/parameters.yml
Bây giờ ta nên chỉnh sửa file cho phù hợp với nhu cầu của bạn :
nano app/config/parameters.yml
File nên được thay đổi để phù hợp với nhu cầu của server .
Các tùy chọn đầu tiên là các tham số database *. Họ đang tự mô tả; chúng có thể được điền vào một cách dễ dàng. Nếu bạn đã làm theo các bước trên để tạo database , bạn có thể để ` trình điều khiển cơ sở dữ liệu to
pdo mysql , just like
server cơ sở dữ liệu which can be left at the default
localhost which can be left at the default
. The
database and
user cơ sở dữ liệu should be set to
packagist and the
database_password` phải được đặt thành password bạn đã đặt trước đó.
Phần tiếp theo là về gửi thư. Bạn có thể cần sử dụng SMTP hoặc sendmail làm mailer_transport
, nhưng điều đó phụ thuộc vào server gửi thư của bạn. Khi bạn sử dụng SMTP, tất cả các chi tiết khác về SMTP cũng phải được điền vào.
Tham số packagist_host
là bắt buộc, vì vậy hãy đặt nó thành domain được kết nối với Server hoặc sử dụng IP của Server. Sau khi đã điền xong packagist_host
, hãy bỏ ghi chú hai tham số sau. Nếu bạn không sử dụng HTTPS, router.request_context.scheme
nên được đặt thành http
.
Nếu các bước trên được thực hiện đúng, bạn không cần thay đổi thông số redis_dsn
. ga_key
locale
cũng có thể được để mặc định và ga_key
không bắt buộc. Tuy nhiên, github.client_id
và github.client_secret
được khuyến khích điền vào. Để làm được điều này, trước tiên hãy đăng ký một ứng dụng mới trên GitHub . URL gọi lại có thể để trống. Sau khi ứng dụng đã được đăng ký, hãy sao chép ID khách hàng vào github.client_id
. Điều tương tự cũng nên được thực hiện đối với Bí mật khách hàng.
Điều tiếp theo cần được điền vào là secret
và remember_me.secret
. Chúng có thể được điền ngẫu nhiên hoặc có thể là một chuỗi ngẫu nhiên được tạo tại thebitmill.com . Dấu câu nên được bỏ chọn trong trình tạo vì nó có thể gây ra sự cố với YAML.
Phần còn lại của các tham số có thể được để ở giá trị mặc định của chúng. Bây giờ thực hiện các lệnh sau:
php composer.phar install
app/console doctrine:schema:create
app/console cache:clear --env=prod
app/console assets:install web
mkdir home
sudo chown www-data:www-data -R /var/www/home
APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 |
cut -d\ -f1`
sudo setfacl -R -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:$APACHEUSER:rwX -m u:`whoami`:rwX app/cache app/logs
Điều duy nhất còn lại là cài đặt một VirtualHost chính xác. Chỉnh sửa /etc/apache2/sites-available/default
:
nano /etc/apache2/sites-available/default
Thay đổi DocumentRoot /var/www
thành DocumentRoot /var/www/web
. Thêm một dòng bên dưới DocumentRoot
với nội dung SetEnv HOME /var/www/home
. Sau đó thay đổi <Directory /var/www>
thành <Directory /var/www/web>
. Tiếp theo, đặt một dấu trừ trước Chỉ mục để dòng trở thành như thế này:
Options -Indexes FollowSymLinks MultiViews
Sau đó thay đổi dòng sau đó từ AllowOverride None
thành AllowOverride All
. Cuối cùng, khởi động lại Apache:
sudo service apache2 restart
Bây giờ, ta cần cài đặt Solr một cách chính xác. Chỉnh sửa /opt/solr/solr/solr.xml
:
nano /opt/solr/solr/solr.xml
Trong file này, hãy tìm collection1
và thay thế nó bằng packagist
, để file có dạng như sau:
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="false">
<cores adminPath="/admin/cores" defaultCoreName="packagist">
<core name="packagist" instanceDir="." />
</cores>
</solr>
Bây giờ, schema.xml của schema.xml
sẽ được sử dụng trong Solr. Thực hiện các lệnh sau:
rm /opt/solr/solr/conf/schema.xml
cp /var/www/doc/schema.xml /opt/solr/solr/conf/schema.xml
sudo /etc/init.d/jetty restart
Cài đặt của bạn hiện có thể được truy cập tại http://YOUR_IP/
. Nó sẽ hoạt động giống như Packagist. Khi cài đặt của bạn cần hỗ trợ thêm hệ thống kiểm soát version (VCS), hãy cài đặt những hệ thống sau:
sudo apt-get -y install subversion
sudo apt-get -y install mercurial
Đồng thời cài đặt cron job cho các lệnh sau (khoảng thời gian được khuyến khích là 1 phút, xem hướng dẫn này để cài đặt cron job):
/var/www/app/console packagist:update --no-debug --env=prod
/var/www/app/console packagist:dump --no-debug --env=prod
/var/www/app/console packagist:index --no-debug --env=prod
Khi nào một gói mới được thêm vào, nó sẽ không được Solr lập index tự động; cho rằng các lệnh trên thực sự nên được cài đặt như một công việc cron hoặc được thực hiện theo cách thủ công mỗi khi có gì đó thay đổi. Tùy chọn đầu tiên có lẽ là dễ nhất.
Một số thứ không hoạt động ngay lập tức như trang thống kê. Packagist nên cập nhật khoảng 2 ngày trước đó để nó không báo lỗi 500 nữa.
Sử dụng repository của bạn
Bây giờ có thể sử dụng Composer của bạn . Để thực hiện việc này, hãy thêm phần repositories
sau vào composer.json:
{
"repositories": [
{
"type": "composer",
"url": "http://YOUR_IP/"
}
],
// these are just examples of requirements, you don't actually need
them (delete this comment as comments are officially not supported in JSON)
"require": {
"symfony/yaml": "dev-master",
"symfony/http-foundation": "dev-master"
}
}
<div class = “author”> Được gửi bởi: <a href=p>http://koenv.com[> Koen Vlaswinkel </a> </div>
Các tin liên quan
Cách cài đặt và sử dụng Fish Shell trên VPS Ubuntu2014-04-09
Cách thiết lập hệ thống tệp phân tán Tahoe-LAFS trên server Ubuntu 14.04
2014-04-03
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt ProcessWire trên VPS Ubuntu
2014-03-20
Cách cài đặt Hadoop trên Ubuntu 13.10
2014-03-20
Cách cài đặt HHVM (Máy ảo HipHop) trên VPS Ubuntu 13.10
2014-03-18
Cách thiết lập server cloud Ubuntu cho ứng dụng web Python
2014-02-25
Cách cài đặt và bắt đầu với CMS Mezzanine trên Django trên Ubuntu
2014-02-25
Cách cài đặt Django CMS phiên bản 3 Beta 3 với Django 1.6 trên Ubuntu
2014-02-25
Làm thế nào để Dockerise và triển khai nhiều ứng dụng WordPress trên Ubuntu
2014-02-13