There is an existing hotfix branch. Finish that one first.

gitflow to świetne narzędzie do zarządzania kodem. Jednak posiada jedną irytującą mnie cechę, nie pozwala na tworzenie więcej niż jednej gałęzi hotfix. Rozumiem powody dla których takie działanie jest pożądane, ale czasem nie jest możliwe opublikowanie poprawki zaraz po jej wykonaniu.

Aby pozbyć się tego ograniczenia należy w pliku „git-flow-hotifx” w linii 165 dodać komentarz przed wywołaniem funkcji „require_no_existing_hotfix_branches”:

# require_no_existing_hotfix_branches

Zmodyfikowaną wersję można pobrać z mojego stąd.

Jeżeli już zainstalowaliśmy gitflow, to możemy wykonać poprawkę sami. Skrypt „git-flow-hotfix” znajdziemy w katalogu instalacyjnym Gita. W systemie Windows będzie to np.:

C:\Program Files (x86)\Git\bin

Od tej chwili możemy tworzyć więcej niż jeden „hotfix” w danym momencie.

Zaszufladkowano do kategorii Git | Możliwość komentowania There is an existing hotfix branch. Finish that one first. została wyłączona

Eclipse – An error has occurred. See the log file .metadata/.log.

Podczas nieprawidłowego zamknięcia Eclipse może zdarzyć się, że nie będziemy mogli go ponownie uruchomić z powodu poniższego błędu:

An error has occurred. See the log file ./workspace/metadata/.log.

We wskazanym pliku znajdziemy informację o braku pliku np.:

Caused by: org.eclipse.core.internal.dtree.ObjectNotFoundException: Tree element '/cache/zend_cache---internal-metadatas---fpix5lmgjb8548o4tnk9p01i84' not found.
	at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(AbstractDataTree.java:257)
	at org.eclipse.core.internal.dtree.DeltaDataTree.getData(DeltaDataTree.java:585)
	at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:50)
	at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
	at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
	at org.eclipse.core.internal.dtree.NoDataDeltaNode.asBackwardDelta(NoDataDeltaNode.java:59)
	at org.eclipse.core.internal.dtree.DataDeltaNode.asBackwardDelta(DataDeltaNode.java:47)
	at org.eclipse.core.internal.dtree.DeltaDataTree.asBackwardDelta(DeltaDataTree.java:88)
	at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:816)
	at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:815)
	at org.eclipse.core.internal.dtree.DeltaDataTree.reroot(DeltaDataTree.java:792)
	at org.eclipse.core.internal.watson.ElementTree.immutable(ElementTree.java:517)
	at org.eclipse.core.internal.resources.SaveManager.restore(SaveManager.java:670)
	at org.eclipse.core.internal.resources.SaveManager.startup(SaveManager.java:1353)
	at org.eclipse.core.internal.resources.Workspace.startup(Workspace.java:1957)
	at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:1716)
	at org.eclipse.core.resources.ResourcesPlugin.start(ResourcesPlugin.java:379)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)

Rozwiązaniem jest usunięcie pliku:

workspace/.plugins./org.eclipse.core.resources/.snap

Linki

http://stackoverflow.com/questions/3505187/eclipse-galileo-wont-start-error-objectnotfoundexception-tree-element

Zaszufladkowano do kategorii Eclipse | Możliwość komentowania Eclipse – An error has occurred. See the log file .metadata/.log. została wyłączona

Mass Effect 2 na Origin nie uruchamia się

Gra Mass Effect 2 zakupiona przez platformę Origin posiada błąd, który uniemożliwia jej uruchomienie, jeżeli wcześniej użyliśmy narzędzia do konfiguracji „MassEffect2Config.exe”.

Jeżeli Origin jedynie synchronizuje pliki z chmury i nie uruchamia gry, to znaczy, że padliśmy ofiarą właśnie tego błędu.

Aby ominąć ten problem, kopiujemy zapisany stan gry ręcznie i w żadnym wypadku nie uruchamiamy powyższej aplikacji.

Save’y znajdziemy w „Moich Dokumentach” w katalogu „BioWare\Mass Effect\Save”. Kopiujemy pliki rozpoczynające się od znaków „Char_” do katalogu „BioWare\Mass Effect 2\Save\ME1”.

Jeżeli użyliśmy wcześniej narzędzia „MassEffect2Config.exe”, to musimy usunąć i zainstalować ponownie grę. Aby nie pobierać ponownie całej gry możemy:

  • skopiować katalog „Mass Effect 2” znajdujący się katalogu, w którym przechowywane są gry do innej lokalizacji (domyślnie jest to „C:\Program Files (x86)\Origin Games”),
  • odinstalować grę przez Origin,
  • zamknąć Origin,
  • usunąć katalog „BioWare\Mass Effect 2” z „Moich Dokumentów”,
  • przenieść wcześniej skopiowany katalog „Mass Effect 2” do pierwotnej lokalizacji,
  • uruchomić Origin,
  • zainstalować grę.

Po tej operacji Origin sprawdzi zawartość katalogu i zainstaluje grę bez ponownego jej pobierania. Kopiujemy zapisany stan gry korzystając z poprzednio opisanej metody i możemy cieszyć się grą.

Zaszufladkowano do kategorii Gry, Windows | Możliwość komentowania Mass Effect 2 na Origin nie uruchamia się została wyłączona

exim4 i IPv6

Jeżeli podczas uruchamiania serwera exim otrzymamy następujący komunikat, to znaczy, że nasz system nie obsługuje IPv6:

# /etc/init.d/exim4 restart
Stopping MTA for restart:.
Restarting MTA: exim4.
ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken ... failed!
cat /var/log/exim4/paniclog
2012-06-03 21:23:09 IPv6 socket creation failed: Address family not supported by protocol

Jednym z rozwiązań jest wyłączenie protokołu IPv6. W pliku:

vim /etc/exim4/update-exim4.conf

zamieniamy linię:

dc_local_interfaces='127.0.0.1 ; ::1'

na:

dc_local_interfaces='127.0.0.1'

i restartujemy serwer:

# /etc/init.d/exim4 restart
Stopping MTA for restart: exim4_listener.
Restarting MTA: exim4.

Linki

http://www.rossbeazley.co.uk/disabling-ipv6-on-debian-squeeze-causes-exim-to-panic/

Zaszufladkowano do kategorii Linux | Możliwość komentowania exim4 i IPv6 została wyłączona

Instalacja Javy w kontenerze OpenVZ

Problem napotkałem przy próbie instalacji pakietu „erlang” w Debianie 6. Pakiet wymaga Javy, ale instalacja Javy w kontenerze OpenVZ kończy się błędem z powodu limitów pamięci. Przerwanej instalacji nie można ukończyć, nie można również usunąć instalowanego pakietu.

Polecenie „apt-get install erlang” lub później „apt-get upgrade” wyświetla następujące komunikaty:

#apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]?
Setting up ca-certificates-java (20100412) ...
creating /etc/ssl/certs/java/cacerts...
Could not create the Java virtual machine.
error adding brasil.gov.br/brasil.gov.br.crt
error adding cacert.org/cacert.org.crt
error adding debconf.org/ca.crt
error adding gouv.fr/cert_igca_dsa.crt
error adding gouv.fr/cert_igca_rsa.crt
error adding mozilla/ABAecom_=sub.__Am._Bankers_Assn.=_Root_CA.crt
error adding mozilla/AOL_Time_Warner_Root_Certification_Authority_1.crt
error adding mozilla/AOL_Time_Warner_Root_Certification_Authority_2.crt
error adding mozilla/AddTrust_External_Root.crt
error adding mozilla/AddTrust_Low-Value_Services_Root.crt
error adding mozilla/AddTrust_Public_Services_Root.crt
error adding mozilla/AddTrust_Qualified_Certificates_Root.crt
error adding mozilla/America_Online_Root_Certification_Authority_1.crt
error adding mozilla/America_Online_Root_Certification_Authority_2.crt
error adding mozilla/Baltimore_CyberTrust_Root.crt
error adding mozilla/COMODO_Certification_Authority.crt
error adding mozilla/COMODO_ECC_Certification_Authority.crt
error adding mozilla/Camerfirma_Chambers_of_Commerce_Root.crt
error adding mozilla/Camerfirma_Global_Chambersign_Root.crt
error adding mozilla/Certplus_Class_2_Primary_CA.crt
error adding mozilla/Certum_Root_CA.crt
error adding mozilla/Comodo_AAA_Services_root.crt
error adding mozilla/Comodo_Secure_Services_root.crt
error adding mozilla/Comodo_Trusted_Services_root.crt
error adding mozilla/DST_ACES_CA_X6.crt
error adding mozilla/DST_Root_CA_X3.crt
error adding mozilla/DigiCert_Assured_ID_Root_CA.crt
error adding mozilla/DigiCert_Global_Root_CA.crt
error adding mozilla/DigiCert_High_Assurance_EV_Root_CA.crt
error adding mozilla/Digital_Signature_Trust_Co._Global_CA_1.crt
error adding mozilla/Digital_Signature_Trust_Co._Global_CA_2.crt
error adding mozilla/Digital_Signature_Trust_Co._Global_CA_3.crt
error adding mozilla/Digital_Signature_Trust_Co._Global_CA_4.crt
error adding mozilla/Entrust.net_Global_Secure_Personal_CA.crt
error adding mozilla/Entrust.net_Global_Secure_Server_CA.crt
error adding mozilla/Entrust.net_Premium_2048_Secure_Server_CA.crt
error adding mozilla/Entrust.net_Secure_Personal_CA.crt
error adding mozilla/Entrust.net_Secure_Server_CA.crt
error adding mozilla/Entrust_Root_Certification_Authority.crt
error adding mozilla/Equifax_Secure_CA.crt
error adding mozilla/Equifax_Secure_Global_eBusiness_CA.crt
error adding mozilla/Equifax_Secure_eBusiness_CA_1.crt
error adding mozilla/Equifax_Secure_eBusiness_CA_2.crt
error adding mozilla/Firmaprofesional_Root_CA.crt
error adding mozilla/GTE_CyberTrust_Global_Root.crt
error adding mozilla/GTE_CyberTrust_Root_CA.crt
error adding mozilla/GeoTrust_Global_CA.crt
error adding mozilla/GeoTrust_Global_CA_2.crt
error adding mozilla/GeoTrust_Primary_Certification_Authority.crt
error adding mozilla/GeoTrust_Universal_CA.crt
error adding mozilla/GeoTrust_Universal_CA_2.crt
error adding mozilla/GlobalSign_Root_CA.crt
error adding mozilla/GlobalSign_Root_CA_-_R2.crt
error adding mozilla/Go_Daddy_Class_2_CA.crt
error adding mozilla/IPS_CLASE1_root.crt
error adding mozilla/IPS_CLASE3_root.crt
error adding mozilla/IPS_CLASEA1_root.crt
error adding mozilla/IPS_CLASEA3_root.crt
error adding mozilla/IPS_Chained_CAs_root.crt
error adding mozilla/IPS_Servidores_root.crt
error adding mozilla/IPS_Timestamping_root.crt
error adding mozilla/NetLock_Business_=Class_B=_Root.crt
error adding mozilla/NetLock_Express_=Class_C=_Root.crt
error adding mozilla/NetLock_Notary_=Class_A=_Root.crt
error adding mozilla/NetLock_Qualified_=Class_QA=_Root.crt
error adding mozilla/Network_Solutions_Certificate_Authority.crt
error adding mozilla/QuoVadis_Root_CA.crt
error adding mozilla/QuoVadis_Root_CA_2.crt
error adding mozilla/QuoVadis_Root_CA_3.crt
error adding mozilla/RSA_Root_Certificate_1.crt
error adding mozilla/RSA_Security_1024_v3.crt
error adding mozilla/RSA_Security_2048_v3.crt
error adding mozilla/SecureTrust_CA.crt
error adding mozilla/Secure_Global_CA.crt
error adding mozilla/Security_Communication_Root_CA.crt
error adding mozilla/Sonera_Class_1_Root_CA.crt
error adding mozilla/Sonera_Class_2_Root_CA.crt
error adding mozilla/Staat_der_Nederlanden_Root_CA.crt
error adding mozilla/Starfield_Class_2_CA.crt
error adding mozilla/StartCom_Certification_Authority.crt
error adding mozilla/StartCom_Ltd..crt
error adding mozilla/SwissSign_Gold_CA_-_G2.crt
error adding mozilla/SwissSign_Platinum_CA_-_G2.crt
error adding mozilla/SwissSign_Silver_CA_-_G2.crt
error adding mozilla/Swisscom_Root_CA_1.crt
error adding mozilla/TC_TrustCenter__Germany__Class_2_CA.crt
error adding mozilla/TC_TrustCenter__Germany__Class_3_CA.crt
error adding mozilla/TDC_Internet_Root_CA.crt
error adding mozilla/TDC_OCES_Root_CA.crt
error adding mozilla/TURKTRUST_Certificate_Services_Provider_Root_1.crt
error adding mozilla/TURKTRUST_Certificate_Services_Provider_Root_2.crt
error adding mozilla/Taiwan_GRCA.crt
error adding mozilla/Thawte_Personal_Basic_CA.crt
error adding mozilla/Thawte_Personal_Freemail_CA.crt
error adding mozilla/Thawte_Personal_Premium_CA.crt
error adding mozilla/Thawte_Premium_Server_CA.crt
error adding mozilla/Thawte_Server_CA.crt
error adding mozilla/Thawte_Time_Stamping_CA.crt
error adding mozilla/UTN-USER_First-Network_Applications.crt
error adding mozilla/UTN_DATACorp_SGC_Root_CA.crt
error adding mozilla/UTN_USERFirst_Email_Root_CA.crt
error adding mozilla/UTN_USERFirst_Hardware_Root_CA.crt
error adding mozilla/ValiCert_Class_1_VA.crt
error adding mozilla/ValiCert_Class_2_VA.crt
error adding mozilla/VeriSign_Class_3_Public_Primary_Certification_Authority_-_G5.crt
error adding mozilla/Verisign_Class_1_Public_Primary_Certification_Authority.crt
error adding mozilla/Verisign_Class_1_Public_Primary_Certification_Authority_-_G2.crt
error adding mozilla/Verisign_Class_1_Public_Primary_Certification_Authority_-_G3.crt
error adding mozilla/Verisign_Class_2_Public_Primary_Certification_Authority.crt
error adding mozilla/Verisign_Class_2_Public_Primary_Certification_Authority_-_G2.crt
error adding mozilla/Verisign_Class_2_Public_Primary_Certification_Authority_-_G3.crt
error adding mozilla/Verisign_Class_3_Public_Primary_Certification_Authority.crt
error adding mozilla/Verisign_Class_3_Public_Primary_Certification_Authority_-_G2.crt
error adding mozilla/Verisign_Class_3_Public_Primary_Certification_Authority_-_G3.crt
error adding mozilla/Verisign_Class_4_Public_Primary_Certification_Authority_-_G2.crt
error adding mozilla/Verisign_Class_4_Public_Primary_Certification_Authority_-_G3.crt
error adding mozilla/Verisign_RSA_Secure_Server_CA.crt
error adding mozilla/Verisign_Time_Stamping_Authority_CA.crt
error adding mozilla/Visa_International_Global_Root_2.crt
error adding mozilla/Visa_eCommerce_Root.crt
error adding mozilla/WellsSecure_Public_Root_Certificate_Authority.crt
error adding mozilla/Wells_Fargo_Root_CA.crt
error adding mozilla/XRamp_Global_CA_Root.crt
error adding mozilla/beTRUSTed_Root_CA-Baltimore_Implementation.crt
error adding mozilla/beTRUSTed_Root_CA.crt
error adding mozilla/beTRUSTed_Root_CA_-_Entrust_Implementation.crt
error adding mozilla/beTRUSTed_Root_CA_-_RSA_Implementation.crt
error adding mozilla/thawte_Primary_Root_CA.crt
error adding signet.pl/signet_ca1_pem.crt
error adding signet.pl/signet_ca2_pem.crt
error adding signet.pl/signet_ca3_pem.crt
error adding signet.pl/signet_ocspklasa2_pem.crt
error adding signet.pl/signet_ocspklasa3_pem.crt
error adding signet.pl/signet_pca2_pem.crt
error adding signet.pl/signet_pca3_pem.crt
error adding signet.pl/signet_rootca_pem.crt
error adding signet.pl/signet_tsa1_pem.crt
error adding spi-inc.org/spi-ca-2003.crt
error adding spi-inc.org/spi-cacert-2008.crt
error adding telesec.de/deutsche-telekom-root-ca-2.crt
failed (VM used: java-6-openjdk).
dpkg: error processing ca-certificates-java (--configure):
subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
Errors were encountered while processing:
ca-certificates-java
E: Sub-process /usr/bin/dpkg returned an error code (1)

Java wprawdzie instaluje się, ale nie można jej uruchomić inaczej niż z parametrami, które ograniczają zużycie pamięci:

# java -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

Poniższe rozwiązanie działa, ale wymaga dodawanie argumentów za każdym razem, gdy chcemy uruchomić program napisany w Javie:

# java -Xms16M -Xmx32M -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze1)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

Jednak to nie pozwoli na dokończenie przerwanej instalacji. Rozwiązaniem problemu okazało się wyeksporotwanie opcji Javy, a następnie dokończenie instalacji:

# export _JAVA_OPTIONS="-Xms16M -Xmx32M"
# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]?
Setting up ca-certificates-java (20100412) ...
creating /etc/ssl/certs/java/cacerts...
Picked up _JAVA_OPTIONS: -Xms16M -Xmx32M
done.

Linki

http://serverfault.com/questions/168080/java-vm-problem-in-openvz
http://serverfault.com/questions/330850/cannot-create-java-vm-on-openvz

Zaszufladkowano do kategorii Java, Linux, OpenVZ | Możliwość komentowania Instalacja Javy w kontenerze OpenVZ została wyłączona

Replikacja repozytoriów SVN

Replikacja repozytorium pozwala nam automatyczne tworzenie kopii zapasowej lub szybkie uruchomienie serwera do którego można wysyłać zmiany, gdy serwer główny ulegnie awarii.

Postanowiłem umieścić repozytoria pod adresem „/svn”, więc dodaję lokalizację do Apache’a:

<Location /svn>
    DAV svn
    SVNParentPath /path/to/repos
    SVNMasterURI https://url.to.repos/svn
    AuthType Basic
    AuthName "Subversion Repositories"
    AuthUserFile /path/to/passwd/file
    AuthzSVNAccessFile /path/to/authz/file
    Require valid-user
</Location>

To wystarczy, aby przeglądać repozytoria przez WWW, ale nie wystarczy do poprawnego działania serwera slave. Wszelkie próby modyfikacji danych będą przesyłane na serwer główny, ale pobieranie danych zawsze będzie odbywać się ze slave’a. Z racji tego, że korzystamy z protokołu HTTPS, musimy włączyć SSLProxyEngine dla domeny, którą będziemy wykorzystywali do komunikacji z repozytoriami.

<VirtualHost *.443>
    DocumentRoot /path/to/websvn
    ServerName url.to.svn
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/key.pem
    SSLProxyEngine On
    <Directory /path/to/websvn>
        Allow from all
        Options -Indexes
    </Directory>
</VirtualHost>

ppp

svnsync --source-username=masterusername --source-password=masterpassword --sync-username=slaveusername --sync-password=slavepassword init file:///path/to/repository https://url.to.svn/repository

Polecenie zakończy się komunikatem:

Copied properties for revision 0.

Dodatkowo, możemy zweryfikować czy synchronizacja została skonfigurowana prawidłowo przy pomocy polecenia:

svn propget svn:sync-from-url --revprop -r 0 file:///path/to/repository

Polecenie zwróci adres głównego repozytorium. W naszym przypadku to:

https://url.to.svn/repository

Synchronizujemy repozytorium:

svnsync sync file:///path/to/repository

W moim repozytorium była tylko jedna rewizja, więc synchronizacja zakończyła się komunikatem:

Committed revision 1.
Copied properties for revision 1.

Zanim zaczniemy testować zatwierdzanie zmian, upewniamy się, że Apache posiada zainstalowany i aktywny moduł proxy i proxy_http:

a2enmod proxy
a2enmod proxy_http
/etc/init.d/apache2 restart

Tworzymy kopie robocze repozytorium z serwera master oraz slave. Modyfikujemy kopię roboczą pobraną z serwera slave i zatwierdzamy zmiany. Zatwierdzanie zmian powinno wykonać się poprawnie. Teraz możemy uaktualnić kopię z serwera master, ta operacja również wykona się poprawnie, ale odświeżenie kopii z serwera slave zakończ się błędem:

Error: REPORT of '/svn/test/!svn/vcc/default': Could not read chunk size: Secure
Error: connection truncated (https://url.to.repository)

Sprawdzenie dziennika błędów Apache’a da nam wskazówkę co poszło nie tak:

tail /var/log/apache2/error.log
A failure occurred while driving the update report editor [500, #160006]
No such revision 4 [500, #160006]

Automatyczną synchronizację możemy wykonywać przy pomocy hooków w głównych repozytoriach.

Aby uniknąć pytań o zapisywanie haseł:

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

    Subversion Repositories

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)?

w pliku /root/.subversion/servers należy odszukać linię „# store-plaintext-passwords = no” i usunąć komentarz (znak #) z początku linii.

Błąd związany z wersją

Rozwiązaniem poniższego problemu:

svnsync: warning: W200007: Target server does not support atomic revision property edits; consider upgrading it to 1.7 or using an external locking program
svnsync: E000022: Couldn't get lock on destination repos after 10 attempts

Jest skasowanie blokady:

svn propdel --revprop -r0 svn:sync-lock file:///path/to/repository

Linki

http://www.slideshare.net/normanmaurer/apacheconeusvnreplication

http://stackoverflow.com/questions/4077601/svnsync-couldnt-get-lock-on-destination-repos

Zaszufladkowano do kategorii Linux, SVN | Możliwość komentowania Replikacja repozytoriów SVN została wyłączona

PHP 5.4 – instalacja ze źródeł

Pobieramy i rozpakowujemy najnowszą wersję PHP.

wget http://cz.php.net/distributions/php-5.4.0.tar.gz
tar xvzf&nbsp;php-5.4.0.tar.gz
cd php-5.4.0

Przed instalacją należy uruchomić skrypt konfiguracyjny. Skrypt uruchomiony z opcją „–help” wyświetli wszystkie dostępne opcje.

./configure --help

Moja konfiguracja wygląda następująco.

./configure \
    --disable-short-tags \
    --enable-bcmath \
    --enable-calendar \
    --enable-dom \
    --enable-exif \
    --enable-fpm \
    --enable-ftp \
    --enable-libxml \
    --enable-mbstring \
    --enable-pdo \
    --enable-session \
    --enable-soap \
    --enable-sockets \
    --enable-zip \
    --with-bz2 \
    --with-curl \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --with-gd \
    --with-openssl \
    --with-mcrypt \
    --with-mysql \
    --with-mysql-sock \
    --with-mysqli \
    --with-pdo-mysql \
    --with-tidy \
    --with-xmlrpc \
    --with-xsl \
    --with-zlib

Jeżeli konfiguracja przebiegnie pomyślnie, to możemy skompilować i zainstalować PHP. Po kompilacji warto wykonać testy poleceniem „make test” i przesłać ich wyniki do

make all
make test
make install

Domyślnie PHP zostanie zainstalowane w katalogu „/usr/local/bin/”. Możemy sprawdzić czy instalacja została wykonana poprawnie sprawdzając wersję PHP oraz listę zainstalowanych modułów.

php -v
PHP 5.4.0 (cli) (built: Apr 20 2012 23:50:34)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]

Linki

http://www.php.net/get/php-5.4.0.tar.gz/from/a/mirror

Zaszufladkowano do kategorii Linux, PHP | Możliwość komentowania PHP 5.4 – instalacja ze źródeł została wyłączona

DirectAdmin – instalacja certyfikatu SSL

Instalacja certyfikatu SSL w panelu DirectAdmin wymaga wykonania kilku czynności. Najpierw należy włączyć dostęp do opcji SSL dla użytkownika, następnie szyfrowanie SSL dla wybranej domeny, a na końcu załadować certyfikat oraz klucz prywatny do panela.

Po wykupieniu certyfikatu zwykle otrzymujemy jeden lub kilka plików. Jeden z nich zawiera certyfikat np.:

-----BEGIN CERTIFICATE-----
QkVHSU4gQ0VSVElGSUNB...
-----END CERTIFICATE-----

a drugi klucz prywatny np.:

-----BEGIN PRIVATE KEY-----
QkVHSU4gUFJJVkFURSBL...
-----END PRIVATE KEY-----

Pliki mogą mieć rozszerzenie .crt lub .pem. Jeżeli otrzymamy plik o rozszerzeniu .p12, to musimy wydostać z niego certyfikat oraz klucz prywatny. Eksport możemy wykonać przy pomocy polecenia openssl.

openssl pkcs12 -in domena.p12 -nodes -out domena.pem

Po wykonaniu polecenia otrzymamy plik, w którym znajduje się certyfikat oraz klucz prywatny.

Dostęp do SSL-a włączamy poprzez zaznaczenie pola SSL Access w opcjach użytkownika. Dostęp do tej opcji możemy poprzez przycisk Modify User.

Pozostałe czynności wykonujemy po zalogowaniu się na konto użytkownika, dla którego instalujemy certyfikat. Po zalogowaniu wybieramy domenę i przechodzimy do zakładki „SSL Certificates”. Należy pamiętać, że certyfikat może być zainstalowany tylko dla głównej domeny.

Wybieramy „Paste a pre-generated certificate and key” i w pole tekstowe wklejamy certyfikat oraz klucz razem z liniami rozpoczynającymi się od myślników np.:

-----BEGIN CERTIFICATE-----
QkVHSU4gQ0VSVElGSUNB...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
QkVHSU4gUFJJVkFURSBL...
-----END PRIVATE KEY-----

CA Root Certificate

Czasem wymagany jest tzw. CA Root Certificate. Jego brak skutkuje ostrzeżeniem o nieprawidłowym (niezaufanym) certyfikacie oraz błędzie „sec_error_unknown_issuer” podczas próby wejścia na stronę.

Certyfikat CA możemy wkleić w tym miejscu, w którym dodawaliśmy poprzedni. Na dole strony znajduje się tekst „Click Here to paste a CA Root Certificate”. Zaznaczamy pole „Use a CA Cert” i wklejamy w pole tekstowe certyfikat.

Po zapisaniu zmian należy odczekać maksymalnie kilka minut, aż zmiany zostaną uwzględnione w konfiguracji serwera.

 

Zaszufladkowano do kategorii DirectAdmin, Linux | Możliwość komentowania DirectAdmin – instalacja certyfikatu SSL została wyłączona

Przydatne polecenia i skrypty

Kilka przydatnych skryptów.

  • Kompresja każdego katalogi w bieżącym katalogu do osobnego archiwum.
for f in */; do tar -zcvf ${f%/}.tar.gz ${f%/}; done
  • Ustawianie uprawnień 755 na katalogi oraz 644 na pliki.
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
  • Zmiana nazwy repozytorium SVN.
svnadmin dump $1 > /tmp/repo
svnadmin create $2
svnadmin load $2 < /tmp/repo
rm /tmp/repo
  • Pobieranie katalogów z FTP. Polecenie uruchamiamy dowolną liczbę razy, aby przyśpieszyć pobieranie.
wget -r -nc -b ftp://user:passwordj@domain.com/dir/to/download/
  • Wyszukiwanie plików MySQL-a.
lsof -nc mysqld | grep -vE '(\.so(\..*)?$|\.frm|\.MY?|\.ibd|ib_logfile|ibdata|TCP)'

Linki

http://www.dbasquare.com/2012/06/02/how-to-find-mysql-binary-logs-error-logs-temporary-files/
http://themattreid.com/wordpress/2012/04/10/fun-with-bash-one-liners/

Zaszufladkowano do kategorii Linux, MySQL, SVN | Możliwość komentowania Przydatne polecenia i skrypty została wyłączona

/usr/local/lib/libz.so.1: no version information available (required by python)

Na serwerze z zainstalowanym DirectAdminem, przy próbie aktualizacji listy pakietów lub korzystania z interpretera Pythona pojawiał się komunikat:

/usr/local/lib/libz.so.1: no version information available (required by python)

Rozwiązaniem jest aktualizacja bibliotek zlib oraz libxml do nowszych wersji oraz rekompilacja biblioteki zlib:

cd /usr/local/directadmin/custombuild
./build update
perl -pi -e 's/zlib:1.2.3:.*/zlib:1.2.5:/' versions.txt
perl -pi -e 's/libxml2:2.7.6:.*/libxml2:2.7.8:/' versions.txt
./build zlib

Linki

http://www.vr.org/knowledgebase/3182/orusrorlocalorliborlibzso1-no-version-information-available-required-by-python.html

Zaszufladkowano do kategorii DirectAdmin, Linux, Python | Możliwość komentowania /usr/local/lib/libz.so.1: no version information available (required by python) została wyłączona